【发布时间】:2017-08-31 10:05:34
【问题描述】:
我有一个包含多个Buttons 和同样多Commands 的视图。对于每个Command,我想我必须实现ICommand。我的程序将包含一个状态机,因此命令的 CanExecute 可能会更改运行时。
CanExecuteChanged的唯一实现示例是this:
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
但是here 据说这个实现是一个糟糕的解决方案。应该使用RaiseCanExecuteChanged()。
但是我找不到CanExecuteChanged 和RaiseCanExecuteChanged 的正确实现。 Here我找到了一个基本的例子,但是用户声明了它
是一个非常简单的实现(可能偶尔会抛出 NullReferenceException)
我更喜欢不时抛出异常的代码。有人有更好的例子吗?
【问题讨论】: