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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top