[MVVM] Validation sans code behind
Bonjour,
Je met de la validation coté UI dans mon application WPF utilisant le patern MVVM.
J'ai une série de contrôles qui dispose de ValidationRule et qui sont associé a un ValidationGroup.
Pour l'instant je n'ai pas trouver de meilleur moyen que de lancer la validation de mes contrôles avec du code C# de l'évènement click de mon bouton de submit et remplir une propriété dans mon VM.
Je procède de cette façon :
VM :
Code:
1 2 3 4 5 6
| public bool HasError { get; set; }
public GraphMarkViewModel()
{
SaveCommand = new RelayCommand(o => Save(), o => !HasError);
} |
View :
Code:
1 2 3 4 5 6
| private void Button_Click(object sender, RoutedEventArgs e)
{
var expressions = BindingGroup.BindingExpressions;
expressions.ForEach(ex => ex.UpdateSource());
(DataContext as GraphMarkViewModel).HasError = expressions.Any(ex => ex.HasError);
} |
Quelqu'un a des idées pour améliorer cette architecture ? voir tout faire en XAML ? Je rêve peut être ? :aie:
merci d'avance ;)