When does WPF requery commands whether they can execute? Debugger reports it happens quite often. But what is the exact set of conditions?
问问题
790 次
1 回答
0
它的 TL;DR 版本是当窗口上发生某些输入事件时调用 CanExecute 方法。主要有键盘和鼠标事件。
因此,无论何时有人单击或按下某个键, CommandManager 都会使所有命令无效(通过引发CommandManager.RequerySuggested事件)。这就是保持 CanExecute 方法快速运行很重要的原因。
也可以通过创建一个ICommand
不对CanExecuteChanged
事件使用 CommandManager 的自定义实现来自己处理这个问题。
于 2015-03-30T21:35:19.210 回答