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
プロパティにバインドされます。
誰かが私にこれを説明できますか? ありがとうございました。