2009-06-15 4 views
1

をコマンドをルーティング実行:このように、WPFは手動

MyCommands.MyCommand.Execute(parameter, target) 

は、私が最初にCanExecuteメソッドを呼び出す必要がありますか、これはすでにExecuteメソッドの内部で行われているのですか?

答えて

10

CanExecuteがExecuteで呼び出されるとは仮定しないでください。 ICommandのインターフェイスは、Executeが呼び出されたときにCanExecuteを呼び出すことを意味しないため、CanExecuteがtrueのときにのみ実行することが重要な場合は、自分で確認してください。

また、コンパイルされたコードをRoutedUICommand用にスキャンすると、実行中のCanExecuteをチェックする場所が表示されません。

実際には、いつExecute/CanExecuteを呼び出すべきかを判断することが消費者の責任です。

1

必要に応じてCanExecuteを手動で呼び出す必要があります。実行はチェックしません。

0

CanExecuteExecuteメソッドによって呼び出されたと仮定してはいけません。これは、その動作を強制するものではないためです。だからあなたはCanExecuteあなた自身に電話する必要があります

関連する問題