ValidatorBase.cs 640 B

1234567891011121314151617181920212223242526272829303132
  1. using System.ComponentModel;
  2. namespace OpenSEMI.ClientBase
  3. {
  4. public abstract class ValidatorBase : IDataErrorInfo
  5. {
  6. private DataErrorInfo<ValidatorBase> DataErrorValidator;
  7. public string this[string propertyName]
  8. {
  9. get
  10. {
  11. return GetDataErrorInfo()[propertyName];
  12. }
  13. }
  14. public string Error => GetDataErrorInfo().Error;
  15. public bool IsValid => string.IsNullOrEmpty(Error);
  16. private DataErrorInfo<ValidatorBase> GetDataErrorInfo()
  17. {
  18. if (DataErrorValidator != null)
  19. {
  20. return DataErrorValidator;
  21. }
  22. DataErrorValidator = new DataErrorInfo<ValidatorBase>(this);
  23. return DataErrorValidator;
  24. }
  25. }
  26. }