ExecutedRoutedEventHandler 代理人

定義

ExecutedPreviewExecuted のルーティング イベントだけでなく、関連する添付イベントも処理するメソッドを表します。Represents the method that will handle the Executed and PreviewExecuted routed events, as well as related attached events.

public delegate void ExecutedRoutedEventHandler(System::Object ^ sender, ExecutedRoutedEventArgs ^ e);
public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);
type ExecutedRoutedEventHandler = delegate of obj * ExecutedRoutedEventArgs -> unit
Public Delegate Sub ExecutedRoutedEventHandler(sender As Object, e As ExecutedRoutedEventArgs)

パラメーター

sender
Object

イベント ハンドラーがアタッチされているオブジェクト。The object where the event handler is attached.

e
ExecutedRoutedEventArgs

イベントのデータ。The event data.

継承
ExecutedRoutedEventHandler

この例では、コマンドの実行時にターゲットにビジュアルプロパティを設定する ExecutedRoutedEventHandler を作成します。This example creates an ExecutedRoutedEventHandler that sets a visual property on the target when the command is executed. この例には、同じコマンドの CanExecuteRoutedEventHandler も含まれています。The example also includes the CanExecuteRoutedEventHandler for the same command.

// ExecutedRoutedEventHandler for the custom color command.
private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
    Panel target = e.Source as Panel;
    if (target != null)
    {
        if (target.Background == Brushes.AliceBlue)
        {
            target.Background = Brushes.LemonChiffon;
        }
        else
        {
            target.Background = Brushes.AliceBlue;
        }
    }
}

// CanExecuteRoutedEventHandler for the custom color command.
private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    if (e.Source is Panel)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}
' ExecutedRoutedEventHandler for the custom color command.
Private Sub ColorCmdExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    Dim target As Panel = TryCast(e.Source, Panel)
    If target IsNot Nothing Then
        If target.Background Is Brushes.AliceBlue Then
            target.Background = Brushes.LemonChiffon
        Else
            target.Background = Brushes.AliceBlue
        End If

    End If
End Sub

' CanExecuteRoutedEventHandler for the custom color command.
Private Sub ColorCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
    If TypeOf e.Source Is Panel Then
        e.CanExecute = True
    Else
        e.CanExecute = False
    End If
End Sub

注釈

このデリゲートには、RoutedCommandの実装ロジックが含まれています。This delegate contains the implementation logic for a RoutedCommand. コマンドから実装ロジックを分離すると、さまざまなソースと型からコマンドを呼び出すことができ、コマンドロジックを一元化できます。Separating the implementation logic from the command allows the command to be invoked from different sources and types, and enables the centralization of command logic.

このデリゲートは、CommandManager.Executed および CommandManager.PreviewExecutedにも使用されます。これは、コマンドのインフラストラクチャの多くを実装する CommandManager クラスの添付イベントです。This delegate is also used for CommandManager.Executed and CommandManager.PreviewExecuted, which are attached events on the CommandManager class that implements much of the commanding infrastructure. ただし、ほとんどの実用的なハンドラーは、CommandManager レベルで動作するのではなく、特定の CommandBindingからの Executed イベントを処理します。But most practical handlers will handle the Executed events from a particular CommandBinding, rather than work at the CommandManager level.

ExecutedRoutedEventArgs内では、実行されたコマンドの結果として発生するルーティングイベントのイベントハンドラーを記述するときに、通常、次のプロパティが対象となります。Within ExecutedRoutedEventArgs, the following properties are generally of interest when you write an event handler for a routed event that results from an executed command:

  • Source は、コマンドが実行された対象を報告します。Source reports the target where the command was executed. コマンドが実行された後は、ルーティングイベントを発生させたオブジェクトとして、ルーティングイベントの用語で Source の方が一般的です。Once the command is executed, you can also think of the Source more generally in routed event terms, as the object that raised a routed event.

  • Command は、実行されたコマンドを報告します。Command reports the command that executed. このプロパティは、コマンドバインドを使用する場合や、複数のコマンドを処理する可能性があるハンドラーを記述する場合に便利です。This property is useful if you use command bindings and if you write handlers that potentially handle multiple commands.

  • Parameter は、実行中のコマンドによって渡されたコマンド固有のパラメーターを報告します。Parameter reports any command-specific parameters that were passed by the executing command. すべてのコマンドがコマンド固有のパラメーターを使用したり、使用したりするわけではありません。Not all commands use or expect command-specific parameters.

  • Handled は、実行されたコマンドからのルーティングイベントが、ルート上の別の要素によって既に処理されているかどうかを報告します。Handled reports whether the routed event that resulted from the executed command was already handled by a different element along the route. ルーティングイベントハンドラーの場合、Handledtrueに設定するためにイベントを処理するときに意味のある作業を行うハンドラーを使用することをお勧めします。For routed event handlers, it is a recommended practice to have handlers that do meaningful work when handling the event to set Handled to true. これにより、イベントの一般的なハンドラーが、ルートに沿ってもう一度イベントを処理するのを防ぐことができます。This prevents typical handlers for the event from handling the event again further along the route. ルーティングイベントの処理の詳細については、「ルーティングイベントを処理済みとしてマークする」および「クラス処理」を参照してください。For more information on handling routed events, see Marking Routed Events as Handled, and Class Handling.

このデリゲートは、CommandManager.Executed および CommandManager.PreviewExecutedEventのハンドラーも表します。これは、コマンドのインフラストラクチャの多くを実装する CommandManager クラスの添付イベントです。This delegate also represents handlers for CommandManager.Executed and CommandManager.PreviewExecutedEvent, which are attached events on the CommandManager class that implements much of the commanding infrastructure. ただし、ほとんどの実用的なハンドラーは、CommandManager レベルで動作するのではなく、特定の CommandBindingからの Executed イベントを処理します。But most practical handlers will handle the Executed events from a particular CommandBinding, rather than work at the CommandManager level.

コマンド実行の詳細については、「コマンド実行の概要」を参照してください。For more information on commanding, see Commanding Overview.

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。Gets an object that represents the method represented by the specified delegate.

適用対象

こちらもご覧ください