Advertisement
Guest User

Untitled

a guest
Jun 27th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. using System;
  2. using System.ComponentModel;
  3. using System.ComponentModel.DataAnnotations;
  4.  
  5. namespace TM
  6. {
  7. public class ValidatedClassExample : Screen, INotifyDataErrorInfo
  8. {
  9. public event PropertyChangedEventHandler PropertyChanged;
  10. public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;
  11.  
  12.  
  13. private ValidatorComponent _validatorComponent;
  14.  
  15. protected ValidatingScreen()
  16. {
  17. _validatorComponent = new ValidatorComponent(this);
  18. _validatorComponent.ErrorsChanged += PropagateErrorsChanged;
  19. }
  20.  
  21. private void PropagateErrorsChanged(object sender, DataErrorsChangedEventArgs e)
  22. {
  23. ErrorsChanged?.Invoke(this, e);
  24. }
  25.  
  26. public virtual bool HasErrors => _validatorComponent.HasErrors;
  27.  
  28. public virtual System.Collections.IEnumerable GetErrors(string propertyName) => _validatorComponent.GetErrors(propertyName);
  29.  
  30.  
  31. private void NotifyOfPropertyChange(string propertyName)
  32. {
  33. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  34. }
  35.  
  36.  
  37. #region some validated properties
  38.  
  39. [Required]
  40. public string MyString
  41. {
  42. get { return _myString; }
  43. set
  44. {
  45. if (value == _myString)
  46. return;
  47. _myString = value;
  48. NotifyOfPropertyChange(nameof(MyString));
  49. }
  50. }
  51. private string _myString;
  52.  
  53. #endregion
  54.  
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement