InputPassWordViewModel.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Avalonia.Input;
  2. using Shaker.Models;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Diagnostics.CodeAnalysis;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace ShakerApp.ViewModels
  11. {
  12. internal class InputPassWordViewModel:DisplayViewModelBase<IModel>
  13. {
  14. private string passWord = string.Empty;
  15. private InputPassWordViewModel()
  16. {
  17. Content = typeof(Views.InputPassWordView);
  18. Title = "InputPassWord";
  19. }
  20. static InputPassWordViewModel()
  21. {
  22. }
  23. public override double Width => 420;
  24. public override double Height => 220;
  25. public override bool CanResize => false;
  26. public static InputPassWordViewModel Instance { get; } = new InputPassWordViewModel();
  27. public override string OKContent => "Confirm";
  28. public string PassWord { get => passWord; set =>SetProperty(ref passWord ,value); }
  29. public override void InitData()
  30. {
  31. base.InitData();
  32. PassWord = string.Empty;
  33. }
  34. protected override void Save()
  35. {
  36. base.Save();
  37. InputAction?.Invoke(PassWord);
  38. }
  39. protected override void OnPropertyChanged(PropertyChangedEventArgs e)
  40. {
  41. base.OnPropertyChanged(e);
  42. if(e.PropertyName == nameof(PassWord))
  43. {
  44. SaveIsEnabled = !string.IsNullOrEmpty(PassWord);
  45. }
  46. }
  47. [AllowNull]
  48. public Action<string> InputAction { get; set; }
  49. }
  50. }