Dot-Net
WPF - 如何強制命令通過其 CommandBindings 重新評估“CanExecute”
我有一個層次結構
Menu中的每個MenuItem都將其Command屬性設置為RoutedCommand我定義的位置。關聯提供了一個回調,用於控制每個 的啟用狀態CommandBinding的評估。CanExecute``MenuItem這幾乎可以工作。菜單項最初帶有正確的啟用和禁用狀態。但是,當我的
CanExecute回調使用的數據發生變化時,我需要該命令從我的回調中重新請求結果,以使這個新狀態反映在 UI 中。對此似乎沒有任何公共
RoutedCommand方法CommandBinding。請注意,當我點擊或鍵入控制項時會再次使用回調(我猜它是在輸入時觸發的,因為滑鼠懸停不會導致刷新)。
不是書中最漂亮的,但您可以使用 CommandManager 使所有命令綁定無效:
CommandManager.InvalidateRequerySuggested();在MSDN上查看更多資訊