public override string this[string columnName] { get { if (!WasEdited) { return(string.Empty); } var results = uom.SelfValidate(); if (results == null) { return(string.Empty); } var message = results.Errors .Where(x => x.PropertyName == columnName) .Select(x => x.ErrorMessage) .FirstOrDefault(); // оригинальная ошибка валидации остается if (message == null && HasExistingValue && TestExistingFor.Contains(columnName)) { message = "Такая единица уже есть."; } if (columnName == "ValueInBase" && ValueInBase.CompareTo(0) <= 0) { return("Число единиц должно быть больше 0."); } return(message != null ? message : string.Empty); } }
private void uom_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { OnPropertyChanged(e.PropertyName); // validate linked fields if (TestExistingFor.Contains(e.PropertyName)) { OnPropertyChanged(TestExistingFor); } WasEdited = true; }