j'ai un Menu
où chaque MenuItem
dans la hiérarchie a sa Command
propriété est définie sur un RoutedCommand
que je l'ai défini. Le CommandBinding
associé fournit un rappel pour l'évaluation de CanExecute
qui contrôle l'état activé de chaque MenuItem
.WPF - Comment forcer une commande à réévaluer « CanExecute » par ses CommandBindings
Cette presque fonctionne. Les éléments de menu arrivent initialement avec les bons états activés et désactivés. Toutefois, lorsque les données que mon rappel CanExecute
utilise change, j'ai besoin de la commande pour re-demander un résultat de mon rappel afin que ce nouvel état soit reflété dans l'interface utilisateur. Il ne semble y avoir aucune méthode publique sur RoutedCommand
ou CommandBinding
pour cela.
Notez que le rappel est utilisé à nouveau lorsque je clique ou tape dans le contrôle (je suppose qu'il est déclenché en entrée car le survol ne provoque pas l'actualisation).
Merci cela a très bien fonctionné. Il y a un léger retard dans l'interface utilisateur, mais je ne suis pas trop inquiet à ce sujet.J'ai également voté votre réponse immédiatement, puis j'ai voté pour voir si cela fonctionnait. Maintenant que cela fonctionne, je ne peux plus réappliquer le vote. Je ne sais pas pourquoi SO a cette règle en place. –
J'ai édité votre réponse afin de réappliquer mon vote. Je n'ai rien changé dans le montage. Merci encore. –
haha ok :) merci! – Arcturus