Question

J'ai un contrôle utilisateur avec un bouton lié ??au NavigationCommands.RefreshCommand . Le gestionnaire de la commande est dans le contrôle parent. Le CanExecute du gestionnaire ressemble à ceci:

e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property

Pour une raison quelconque, le bouton restera désactivé jusqu'à ce que je clique sur la fenêtre.

Si je clique sur le bouton et que je l'exécute (ce qui provoque temporairement la définition de IsConnecting ), il désactivera le bouton correctement, mais ne le fera pas. activez le bouton jusqu'à ce que je provoque un autre événement dans la fenêtre (par exemple, un clic).

Existe-t-il des outils ou des astuces que je peux utiliser pour essayer de déboguer le gestionnaire CanExecute d'une commande liée à un bouton?

Était-ce utile?

La solution

CanExecute du bouton est appelé uniquement lorsque quelque chose se passe dans l'interface graphique. Comme IsConnecting change en arrière-plan, WPF ne met pas à jour le contrôle.

Pour forcer WPF à mettre à jour l'appel CanExecute CommandManager.InvalidateRequerySuggested

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top