Freigeben über


ExecutedRoutedEventHandler Delegat

Definition

Stellt die Methode für die Behandlung der Routingereignisse Executed und PreviewExecuted sowie verwandter angefügter Ereignisse dar.

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)

Parameter

sender
Object

Das Objekt, an das der Ereignishandler angefügt ist.

e
ExecutedRoutedEventArgs

Die Ereignisdaten.

Beispiele

In diesem Beispiel wird eine ExecutedRoutedEventHandler erstellt, die eine visuelle Eigenschaft auf dem Ziel festlegt, wenn der Befehl ausgeführt wird. Das Beispiel enthält auch den CanExecuteRoutedEventHandler für denselben Befehl.

// 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

Hinweise

Dieser Delegat enthält die Implementierungslogik für ein RoutedCommand. Das Trennen der Implementierungslogik vom Befehl ermöglicht das Aufrufen des Befehls aus verschiedenen Quellen und Typen und ermöglicht die Zentralisierung der Befehlslogik.

Dieser Delegat wird auch für CommandManager.Executed und CommandManager.PreviewExecutedverwendet, bei denen es sich um angefügte Ereignisse für die CommandManager Klasse handelt, die einen Großteil der Befehlsinfrastruktur implementiert. Die meisten praktischen Handler behandeln jedoch die Executed Ereignisse eines bestimmten CommandBinding, anstatt auf der CommandManager Ebene zu arbeiten.

In ExecutedRoutedEventArgssind die folgenden Eigenschaften im Allgemeinen von Interesse, wenn Sie einen Ereignishandler für ein Routingereignis schreiben, das aus einem ausgeführten Befehl resultiert:

  • Source meldet das Ziel, in dem der Befehl ausgeführt wurde. Nachdem der Befehl ausgeführt wurde, können Sie sich auch das Source allgemeinere als Routingereignis vorstellen, als das Objekt, das ein Routingereignis ausgelöst hat.

  • Command meldet den ausgeführten Befehl. Diese Eigenschaft ist nützlich, wenn Sie Befehlsbindungen verwenden und Handler schreiben, die möglicherweise mehrere Befehle verarbeiten.

  • Parameter meldet alle befehlsspezifischen Parameter, die vom ausführenden Befehl übergeben wurden. Nicht alle Befehle verwenden oder erwarten befehlsspezifische Parameter.

  • Handled gibt an, ob das Routingereignis, das aus dem ausgeführten Befehl resultierte, bereits von einem anderen Element entlang der Route behandelt wurde. Für Routingereignishandler wird empfohlen, Handler zu verwenden, die bei der Behandlung des Ereignisses sinnvoll arbeiten, um auf truefestzulegenHandled. Dadurch wird verhindert, dass typische Handler für das Ereignis das Ereignis weiter unten auf der Route erneut behandeln. Weitere Informationen zur Behandlung von Routingereignissen finden Sie unter Markieren von Routingereignissen als verarbeitet und Klassenbehandlung.

Dieser Delegat stellt auch Handler für CommandManager.Executed und CommandManager.PreviewExecutedEventdar, bei denen es sich um angefügte Ereignisse für die CommandManager Klasse handelt, die einen Großteil der Befehlsinfrastruktur implementiert. Die meisten praktischen Handler behandeln jedoch die Executed Ereignisse eines bestimmten CommandBinding, anstatt auf der CommandManager Ebene zu arbeiten.

Weitere Informationen über Befehle finden Sie unter Befehlsübersicht.

Erweiterungsmethoden

GetMethodInfo(Delegate)

Ruft ein Objekt ab, das die Methode darstellt, die vom angegebenen Delegaten dargestellt wird.

Gilt für:

Weitere Informationen