DigitalSignatureInfoControl.xaml.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System.Collections.Generic;
  2. using System.ComponentModel;
  3. using System.Runtime.CompilerServices;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using Compdfkit_Tools.PDFControl;
  7. namespace Compdfkit_Tools.DigitalSignature.VerifyDigitalSignatureControl
  8. {
  9. public partial class DigitalSignatureInfoControl : UserControl, INotifyPropertyChanged
  10. {
  11. private string _signerInfo;
  12. public string SignerInfo
  13. {
  14. get => _signerInfo;
  15. set => UpdateProper(ref _signerInfo, value);
  16. }
  17. private string _timeInfo;
  18. public string TimeInfo
  19. {
  20. get => _timeInfo;
  21. set => UpdateProper(ref _timeInfo, value);
  22. }
  23. private SignatureStatus _status;
  24. public SignatureStatus Status
  25. {
  26. get => _status;
  27. set
  28. {
  29. _status = value;
  30. SetStatus(_status);
  31. }
  32. }
  33. public DigitalSignatureInfoControl()
  34. {
  35. InitializeComponent();
  36. DataContext = this;
  37. }
  38. private void SetStatus(SignatureStatus status)
  39. {
  40. ValidBorder.Visibility = Visibility.Collapsed;
  41. InvalidBorder.Visibility = Visibility.Collapsed;
  42. UnknownBorder.Visibility = Visibility.Collapsed;
  43. switch (status)
  44. {
  45. case SignatureStatus.None:
  46. break;
  47. case SignatureStatus.Valid:
  48. ValidBorder.Visibility = Visibility.Visible;
  49. break;
  50. case SignatureStatus.Invalid:
  51. InvalidBorder.Visibility = Visibility.Visible;
  52. break;
  53. case SignatureStatus.Unknown:
  54. UnknownBorder.Visibility = Visibility.Visible;
  55. break;
  56. }
  57. }
  58. public event PropertyChangedEventHandler PropertyChanged;
  59. protected void UpdateProper<T>(ref T properValue,
  60. T newValue,
  61. [CallerMemberName] string properName = "")
  62. {
  63. if (object.Equals(properValue, newValue))
  64. return;
  65. properValue = newValue;
  66. OnPropertyChanged(properName);
  67. }
  68. protected void OnPropertyChanged([CallerMemberName] string propertyName = "") =>
  69. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  70. }
  71. }