CommandBinding.CanExecute イベント


この CommandBinding に関連付けられたコマンドがコマンド ターゲットで実行可能かどうかのチェックを開始したときに発生します。Occurs when the command associated with this CommandBinding initiates a check to determine whether the command can be executed on the command target.

 event System::Windows::Input::CanExecuteRoutedEventHandler ^ CanExecute;
public event System.Windows.Input.CanExecuteRoutedEventHandler CanExecute;
member this.CanExecute : System.Windows.Input.CanExecuteRoutedEventHandler 
Public Custom Event CanExecute As CanExecuteRoutedEventHandler 
Public Event CanExecute As CanExecuteRoutedEventHandler 

次の例では、ExecutedRoutedEventHandlerCanExecuteRoutedEventArgs ハンドラーを Open コマンドにマップする CommandBinding を作成します。The following example creates a CommandBinding that maps an ExecutedRoutedEventHandler and a CanExecuteRoutedEventArgs handler to the Open command.

  <CommandBinding Command="ApplicationCommands.Open"
// Creating CommandBinding and attaching an Executed and CanExecute handler
CommandBinding OpenCmdBinding = new CommandBinding(

' Creating CommandBinding and attaching an Executed and CanExecute handler
Dim OpenCmdBinding As New CommandBinding(ApplicationCommands.Open, AddressOf OpenCmdExecuted, AddressOf OpenCmdCanExecute)


CanExecutetrueに設定する CanExecuteRoutedEventHandler を次に示します。The following shows the CanExecuteRoutedEventHandler which sets CanExecute to true.

void OpenCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
    e.CanExecute = true;
Private Sub OpenCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
    e.CanExecute = True
End Sub


RoutedCommandCanExecute メソッドが呼び出されると、コマンドターゲットで PreviewCanExecute イベントが発生します。When the CanExecute method on a RoutedCommand is called, the PreviewCanExecute event is raised on the command target. イベントが処理されない場合は、CanExecute イベントが発生します。If the event is not handled, the CanExecute event is raised. コマンドターゲットにコマンドの CommandBinding がある場合、その CommandBindingCanExecute ハンドラーが呼び出されます。If the command target has a CommandBinding for the command, the CanExecute handler for that CommandBinding is called. コマンドの対象にコマンドの CommandBinding がない場合、CanExecute イベントは、コマンドに関連付けられた CommandBinding を持つ要素を検索します。If the command target does not have a CommandBinding for the command, the CanExecute event bubbles up the element tree searching for an element that has a CommandBinding associated with the command.

ルーティングされたイベント情報Routed Event Information

識別子フィールドIdentifier field CanExecuteEvent
ルーティング方法Routing strategy バブリングBubbling
デリゲートDelegate CanExecuteRoutedEventHandler