CommandBinding.CanExecute イベント

定義

この CommandBinding に関連付けられたコマンドがコマンド ターゲットで実行可能かどうかのチェックを開始したときに発生します。

public:
 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 

イベントの種類

CanExecuteRoutedEventHandler

次の例では、 CommandBinding コマンドに対応する ExecutedRoutedEventHandler ハンドラーと CanExecuteRoutedEventArgs ハンドラーを Open 作成します。

<Window.CommandBindings>
  <CommandBinding Command="ApplicationCommands.Open"
                  Executed="OpenCmdExecuted"
                  CanExecute="OpenCmdCanExecute"/>
</Window.CommandBindings>
// Creating CommandBinding and attaching an Executed and CanExecute handler
CommandBinding OpenCmdBinding = new CommandBinding(
    ApplicationCommands.Open,
    OpenCmdExecuted,
    OpenCmdCanExecute);

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

Me.CommandBindings.Add(OpenCmdBinding)

次の設定CanExecutetrueCanExecuteRoutedEventHandler示します。

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

注釈

a のCanExecuteメソッドが呼び出されると、PreviewCanExecuteコマンド ターゲットでイベントが発生RoutedCommandします。 イベントが処理されない場合は、イベントが発生します CanExecute 。 コマンド ターゲットにコマンドの a CommandBinding がある場合は、 CanExecute そのハンドラーが CommandBinding 呼び出されます。 コマンド ターゲットにコマンドの a CommandBinding がない場合、イベントは、 CanExecute コマンドに関連付けられている要素を検索する CommandBinding 要素ツリーをバブルアップします。

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

識別子フィールド CanExecuteEvent
ルーティング戦略 バブル
代理人 CanExecuteRoutedEventHandler

適用対象

こちらもご覧ください