using System.ComponentModel; namespace OpenSEMI.ClientBase { public abstract class ValidatorBase : IDataErrorInfo { private DataErrorInfo DataErrorValidator; public string this[string propertyName] { get { return GetDataErrorInfo()[propertyName]; } } public string Error => GetDataErrorInfo().Error; public bool IsValid => string.IsNullOrEmpty(Error); private DataErrorInfo GetDataErrorInfo() { if (DataErrorValidator != null) { return DataErrorValidator; } DataErrorValidator = new DataErrorInfo(this); return DataErrorValidator; } } }