ValidatorBase.cs 966 B

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