Add the ability to clear validation errors

This commit is contained in:
TheXamlGuy
2024-08-01 22:45:10 +01:00
parent d5eea2d012
commit f09c364ea7
2 changed files with 11 additions and 9 deletions
+3 -1
View File
@@ -14,8 +14,10 @@ public interface IValidation :
ValidationRule[] rules,
ValidationTrigger trigger = ValidationTrigger.Deferred);
void Clear();
Task<bool> Validate<TProperty>(Expression<Func<TProperty>> property,
ValidationRule[] rules);
ValidationRule[] rules);
Task<bool> Validate();
+8 -8
View File
@@ -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<bool> 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<T>(Expression<Func<T>> expression)
{
return expression.Body switch