Debugging Command des CanExecute
-
05-07-2019 - |
Frage
Ich habe eine Benutzersteuerung mit einem Button
an den NavigationCommands.RefreshCommand
gebunden. Die Behandlungsroutine für den Befehl ist in der übergeordneten Steuerung. Die Handler CanExecute
sieht wie folgt aus:
e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property
Aus irgendeinem Grund wird die Button
deaktiviert bleiben, bis ich auf das Fenster klicken.
Wenn ich die Button
klicken und ausführen bekommen (was bewirkt, dass IsConnecting
vorübergehend auf true gesetzt werden) wird es dann auf die Schaltfläche richtig deaktivieren, aber die Schaltfläche nicht aktiviert, bis ich ein anderes Ereignis im Fenster (zB verursachen. ein Klick).
Gibt es irgendwelche Werkzeuge oder Tricks kann ich debuggen die CanExecute Handler eines Befehls, um zu versuchen benutzen, die auf eine Taste gebunden ist?
Lösung
Die CanExecute der Schaltfläche wird nur aufgerufen, wenn etwas in der GUI geschieht. Da die IsConnecting im Hintergrund ändert sich dann nicht WPF nicht die Kontrolle aktualisieren.
WPF zu zwingen, den CanExecute Aufruf CommandManager.InvalidateRequerySuggested