diff --git a/Toolkit.Foundation/IValidation.cs b/Toolkit.Foundation/IValidation.cs index cff43fc..fc8d8ab 100644 --- a/Toolkit.Foundation/IValidation.cs +++ b/Toolkit.Foundation/IValidation.cs @@ -14,8 +14,10 @@ public interface IValidation : ValidationRule[] rules, ValidationTrigger trigger = ValidationTrigger.Deferred); + void Clear(); + Task Validate(Expression> property, - ValidationRule[] rules); + ValidationRule[] rules); Task Validate(); diff --git a/Toolkit.Foundation/Validation.cs b/Toolkit.Foundation/Validation.cs index 2bab2e0..c5337c0 100644 --- a/Toolkit.Foundation/Validation.cs +++ b/Toolkit.Foundation/Validation.cs @@ -31,8 +31,14 @@ public class Validation(IValidatorCollection validators) : } } + public void Clear() + { + errors.Clear(); + OnPropertyChanged(nameof(Errors), null, null); + } + public virtual void OnPropertyChanged(string propertyName, - object? before, object? after) + object? before, object? after) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } @@ -83,6 +89,7 @@ public class Validation(IValidatorCollection validators) : public async Task Validate() { Clear(); + foreach (Validator? validator in Validators) { if (validator.PropertyName is string name) @@ -109,13 +116,6 @@ public class Validation(IValidatorCollection validators) : OnPropertyChanged(nameof(Errors), null, null); } } - - private void Clear() - { - errors.Clear(); - OnPropertyChanged(nameof(Errors), null, null); - } - private string GetPropertyName(Expression> expression) { return expression.Body switch