Bonjour à tous,
J'utilise les commandes WPF prédéfinies en redéfinissant les handler (Can Execute et Executed) seul problème les commandes ne sont pas enabled à tous les moments où elles devraient l'être et je ne comprend pas pourquoi.
Quelques bouts de code pour faire plus clair.
Coté Xaml:
La définition de ma commande Save: avec comme paramètre le DataContext (qui est mon MenuViewModel):
1 2 3 4 5 6 7 8
|
<UserControl.CommandBindings>
<CommandBinding Command="Save" CanExecute="CanSave" Executed="Save" />
</UserControl.CommandBindings>
...
<MenuItem Header="Save" Command="Save" CommandParameter="{Binding}" /> |
Coté c#:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
private void Save(object sender, ExecutedRoutedEventArgs e)
{
WriteFile("File.txt");
}
private void CanSave(object sender, CanExecuteRoutedEventArgs e)
{
if ((((MenuViewModel)e.Parameter).File != null) && (((MenuViewModel)e.Parameter).File != ""))
{
e.CanExecute = true;
e.Handled = true;
}
} |
Le problème c'est que je vérifie en débogage que mes conditions sont toutes les deux vraies
((((MenuViewModel)e.Parameter).File != null) && (((MenuViewModel)e.Parameter).File != ""))
mais la commande reste disabled.
Quelqu'un y comprendrait quelque choses svp?
Partager