У мене є місце, Menu
де кожна MenuItem
в ієрархії має свою Command
властивість, встановлену на визначений RoutedCommand
я. Асоційований CommandBinding
забезпечує зворотний виклик, для оцінки CanExecute
якого контролюється включений стан кожного MenuItem
.
Це майже працює. Елементи меню спочатку містять правильні ввімкнені та вимкнені стани. Однак коли дані, які CanExecute
використовує мій зворотний дзвінок, змінюються, мені потрібна команда для повторного запиту результату від мого зворотного дзвінка, щоб цей новий стан відобразився в інтерфейсі користувача.
Немає публічних методів щодо цього RoutedCommand
чи CommandBinding
для цього.
Зауважте, що зворотний виклик знову використовується при натисканні або введенні в елемент керування (я думаю, що він спрацьовує при введенні, оскільки перемикання миші не викликає оновлення).