最佳答案
我有一个 Menu
,其中层次结构中的每个 MenuItem
都将其 Command
属性设置为我定义的 RoutedCommand
。相关的 CommandBinding
为 CanExecute
的计算提供了一个回调,CanExecute
控制每个 MenuItem
的启用状态。
这个 差不多能用。菜单项最初会显示正确的启用和禁用状态。但是,当我的 CanExecute
回调使用的数据发生变化时,我需要该命令从我的回调中重新请求一个结果,以便在 UI 中反映这个新状态。
在 RoutedCommand
或 CommandBinding
上似乎没有任何用于此目的的公共方法。
请注意,当我单击或在控件中键入内容时,将再次使用回调(我猜测它是在输入时触发的,因为鼠标悬停不会导致刷新)。