Ich habe eine Menuwo jeder MenuItemin der Hierarchie seine CommandEigenschaft auf eine von RoutedCommandmir definierte gesetzt hat. Das zugehörige CommandBindingstellt einen Rückruf zur Verfügung, dessen Auswertung CanExecuteden aktivierten Status von jedem steuert MenuItem.
Das funktioniert fast . Die Menüpunkte zeigen zunächst die richtigen aktivierten und deaktivierten Zustände an. Wenn sich jedoch die Daten CanExecuteändern, die mein Rückruf verwendet, muss der Befehl ein Ergebnis aus meinem Rückruf erneut anfordern, damit dieser neue Status in der Benutzeroberfläche angezeigt wird.
Es scheint keine öffentlichen Methoden dafür RoutedCommandoder CommandBindingdafür zu geben.
Beachten Sie, dass der Rückruf erneut verwendet wird, wenn ich auf das Steuerelement klicke oder es eingebe (ich denke, er wird bei der Eingabe ausgelöst, da ein Mouse-Over die Aktualisierung nicht verursacht).