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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public bool HasError { get; set; }
 
public GraphMarkViewModel()
{
    SaveCommand = new RelayCommand(o => Save(), o => !HasError);
}
View :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?

merci d'avance