我发现了一个奇怪的行为,在接口的自定义实现中,ICommand
我有RaiseCanExecuteChanged
可以从外部调用的方法,并导致调用和重新评估该CanExecute
方法并更改命令(和按钮)的状态:
public void RaiseCanExecuteChanged()
{
if (_canExecuteChanged != null)
_canExecuteChanged(this, EventArgs.Empty);
}
但是,当事件作为属性实现时:
public event EventHandler CanExecuteChanged;
它没有用,而且CanExecuteChanged
是null
。
改成之后
private EventHandler _canExecuteChanged;
public event EventHandler CanExecuteChanged
{
add { _canExecuteChanged += value; }
remove { _canExecuteChanged -= value; }
}
有用。
该命令绑定到按钮Command
属性。
谁能给我解释一下?谢谢你。