4

When does WPF requery commands whether they can execute? Debugger reports it happens quite often. But what is the exact set of conditions?

4

1 回答 1

0

它的 TL;DR 版本是当窗口上发生某些输入事件时调用 CanExecute 方法。主要有键盘和鼠标事件。

因此,无论何时有人单击或按下某个键, CommandManager 都会使所有命令无效(通过引发CommandManager.RequerySuggested事件)。这就是保持 CanExecute 方法快速运行很重要的原因。

也可以通过创建一个ICommand不对CanExecuteChanged事件使用 CommandManager 的自定义实现来自己处理这个问题。

于 2015-03-30T21:35:19.210 回答