をコマンドをルーティング実行:このように、WPFは手動
MyCommands.MyCommand.Execute(parameter, target)
は、私が最初にCanExecute
メソッドを呼び出す必要がありますか、これはすでにExecute
メソッドの内部で行われているのですか?
をコマンドをルーティング実行:このように、WPFは手動
MyCommands.MyCommand.Execute(parameter, target)
は、私が最初にCanExecute
メソッドを呼び出す必要がありますか、これはすでにExecute
メソッドの内部で行われているのですか?
CanExecuteがExecuteで呼び出されるとは仮定しないでください。 ICommandのインターフェイスは、Executeが呼び出されたときにCanExecuteを呼び出すことを意味しないため、CanExecuteがtrueのときにのみ実行することが重要な場合は、自分で確認してください。
また、コンパイルされたコードをRoutedUICommand用にスキャンすると、実行中のCanExecuteをチェックする場所が表示されません。
実際には、いつExecute/CanExecuteを呼び出すべきかを判断することが消費者の責任です。
必要に応じてCanExecuteを手動で呼び出す必要があります。実行はチェックしません。
CanExecute
がExecute
メソッドによって呼び出されたと仮定してはいけません。これは、その動作を強制するものではないためです。だからあなたはCanExecute
あなた自身に電話する必要があります