Tôi có một Menunơi mà mỗi MenuItemthứ bậc trong cấu trúc phân cấp có thuộc Commandtính được đặt thành RoutedCommandtôi đã xác định. Liên kết CommandBindingcung cấp một cuộc gọi lại để đánh giá CanExecutekiểm soát trạng thái kích hoạt của từng trạng thái MenuItem.
Điều này gần như hoạt động. Các mục menu ban đầu đi kèm với trạng thái được bật và tắt chính xác. Tuy nhiên, khi dữ liệu mà CanExecutecuộc gọi lại của tôi sử dụng thay đổi, tôi cần lệnh để yêu cầu lại kết quả từ cuộc gọi lại của mình để trạng thái mới này được phản ánh trong UI.
Dường như không có bất kỳ phương pháp công khai nào trên RoutedCommandhoặc CommandBindingcho việc này.
Lưu ý rằng cuộc gọi lại được sử dụng lại khi tôi nhấp hoặc nhập vào điều khiển (tôi đoán nó được kích hoạt khi nhập vì quá trình di chuột qua không gây ra làm mới).