À quoi sert CanExecuteChanged?
Puis-je utiliser CanExecuteChanged de changer l'exécutez" condition?
... Ou autre chose ... "pour quoi" est utilisé?
source d'informationauteur Relativity
Vous devez vous connecter pour publier un commentaire.
Puis-je utiliser CanExecuteChanged de changer l'exécutez" condition?
... Ou autre chose ... "pour quoi" est utilisé?
source d'informationauteur Relativity
Vous devez vous connecter pour publier un commentaire.
Pas vous ne pouvez pas l'utiliser pour modifier le pouvez exécuter l'état. C'est un événement et les objets qui participent à la
ICommand
modèle peut choisir d'écouter cet événement par exemple, un bouton peut utiliser cet événement pour savoir quand à ré-interroger les commandes de l'état (en appelant le pouvez exécuter la méthode) pour définir son état activé.Pour le peut exécuter le modèle, pour être utile, il doit y avoir quelque chose qui peut être utilisé pour déclencher l'événement. Du prisme de
DelegateCommand
a une méthode que vous pouvez appeler pour augmenter manuellement cet événement pour que les abonnés se ré-interroger le pouvez exécuter la méthode si ils ont choisi le modèle.Exemple
Dans la suite de Prism exemple, nous avons modifier l'état de SaveCommand
CanExecute
de false à true alors que la commande d'enregistrement est en cours d'exécution. L'appel àRaiseCanExecuteChanged
sera la cause de laCanExecuteChanged
cas être soulevées, et les clients d'appeler leCanExecute
méthode. Dans la pratique, cela ferait un bouton de sauvegarde qui a été liée àSaveCommand
changer son état activé à désactivé et retour à nouveau activée.Ou tout simplement appeler
System.Windows.Input.CommandManager.InvalidateRequerySuggested()
de sorte que votreCanExecute
les gestionnaires sont ré-évalués.Je ne sais pas ce que la performance conséquences pour cela; cependant, ils ne semblent pas être trop grande, de toute façon. C'est ce que j'utilise.