【发布时间】:2012-11-30 10:40:21
【问题描述】:
WPF 何时重新查询命令是否可以执行? 调试器报告它经常发生。 但具体的条件是什么?
【问题讨论】:
-
我认为这取决于命令的类型。
RelayCommand通常会在任何属性更改时请求CanExecuteChanged()(我认为只要在属性更改时运行 CommandManager.InvalidateRequerySuggested),而DelegateCommand不会,并且您必须在属性更改时手动提高CanExecuteChanged依赖于变化。此外,所有命令在绑定时都会重新评估,因此隐藏然后显示窗口之类的操作通常会触发重新查询 -
关于这个主题的好话题在这里:robburke.net/2008/04/…
-
@CornelMarian 工作链接:robburke.net/wpf-command-pattern-when-does-it-query-canexecute