【发布时间】:2010-09-22 10:22:57
【问题描述】:
在我的 WPF UI 中,我通过以下代码使用我在我的 xaml 中引用的 RoutedCommands:
Command="viewModel:MessageListViewModel.DeleteMessagesCommand"
我不喜欢这个指向我的 ViewModel 类的静态链接,我认为这不如创建自定义 ICommand 实现并使用类似以下的语法
Command="{Binding DeleteMessagesCommand}"
创建了一个后,我注意到我所做的一个主要缺点:RoutedCommands 利用 CommandManager 并且(以某种对我来说完全不透明的方式)触发 CommandManager.RequerySuggested 事件,以便自动重新查询它们的 CanExecute 方法.至于我的自定义实现,CanExecute 仅在启动时触发一次,之后再也不会触发。
有人对此有一个优雅的解决方案吗?
【问题讨论】: