我有一个查看多个Button
s和一样多的Command
s。对于每Command
我想我将不得不实施ICommand
。我的程序将包含一个statemachine,所以命令的CanExecute可能会改变运行时。 的CanExecuteChanged
的唯一实现的例子this:CanExecuteChanged的正确实施
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
但here中指出,这种实现是一个坏的解决方案。应该使用RaiseCanExecuteChanged()
。
但我找不到CanExecuteChanged
与RaiseCanExecuteChanged
正确实施。 Here我发现一个基本的例子,但用户称它
是一个非常简单的实现(这可能会偶尔丢一个NullReferenceException)
我更喜欢代码,不以一次抛出异常而。有人有更好的例子吗?