次の方法で共有


ExecutedRoutedEventHandler 代理人

定義

ExecutedPreviewExecuted のルーティング イベントだけでなく、関連する添付イベントも処理するメソッドを表します。

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

イベント ハンドラーがアタッチされているオブジェクト。

e
ExecutedRoutedEventArgs

イベントのデータ。

次の使用例は、 ExecutedRoutedEventHandler コマンドの実行時にターゲットにビジュアル プロパティを設定する を作成します。 この例には、同じコマンドの も CanExecuteRoutedEventHandler 含まれています。

// 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含まれています。 実装ロジックをコマンドから分離すると、コマンドをさまざまなソースと型から呼び出し、コマンド ロジックを一元化できます。

このデリゲートは、 と CommandManager.PreviewExecutedにも使用CommandManager.Executedされます。これは、コマンド インフラストラクチャの多くをCommandManager実装するクラスにイベントがアタッチされています。 ただし、ほとんどの実用的なハンドラーは、レベルで動作するのではなく、特定CommandBindingの からのイベントをCommandManager処理Executedします。

内では ExecutedRoutedEventArgs、一般に、実行されたコマンドから発生するルーティング イベントのイベント ハンドラーを記述する場合、次のプロパティが重要です。

  • Source は、コマンドが実行されたターゲットを報告します。 コマンドが実行されると、ルーティング イベントの Source 用語で一般的に、ルーティング イベントを発生させたオブジェクトと考えることもできます。

  • Command は、実行されたコマンドを報告します。 このプロパティは、コマンド バインドを使用する場合や、複数のコマンドを処理する可能性があるハンドラーを記述する場合に便利です。

  • Parameter は、実行中のコマンドによって渡されたコマンド固有のパラメーターを報告します。 すべてのコマンドでコマンド固有のパラメーターが使用または予期されるわけではありません。

  • Handled は、実行されたコマンドから発生したルーティング イベントが、ルートに沿って別の要素によって既に処理されたかどうかを報告します。 ルーティング イベント ハンドラーの場合は、 に設定Handledtrueするイベントを処理するときに意味のある作業を行うハンドラーを用意することをお勧めします。 これにより、イベントの一般的なハンドラーがルートに沿ってイベントを再び処理できなくなります。 ルーティング イベントの処理の詳細については、「ルーティング イベントを 処理済みとしてマークする」および「クラス処理」を参照してください。

このデリゲートは、 および CommandManager.PreviewExecutedEventのハンドラーCommandManager.Executedも表します。これは、コマンド インフラストラクチャの多くをCommandManager実装する クラスにアタッチされたイベントです。 ただし、ほとんどの実用的なハンドラーは、レベルで動作するのではなく、特定CommandBindingの からのイベントをCommandManager処理Executedします。

コマンド実行の詳細については、「コマンド実行の概要」を参照してください。

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。

適用対象

こちらもご覧ください