RoutedCommand.Execute(Object, IInputElement) Methode

Definition

Führt das RoutedCommand auf dem aktuellen Befehlsziel aus.

public:
 void Execute(System::Object ^ parameter, System::Windows::IInputElement ^ target);
[System.Security.SecurityCritical]
public void Execute(object parameter, System.Windows.IInputElement target);
public void Execute(object parameter, System.Windows.IInputElement target);
[<System.Security.SecurityCritical>]
member this.Execute : obj * System.Windows.IInputElement -> unit
member this.Execute : obj * System.Windows.IInputElement -> unit
Public Sub Execute (parameter As Object, target As IInputElement)

Parameter

parameter
Object

Benutzerdefinierter Parameter, der an den Handler übergeben werden soll.

target
IInputElement

Element, bei dem nach Befehlshandlern gesucht werden soll.

Attribute

Ausnahmen

Beispiele

Das folgende Beispiel stammt aus einer benutzerdefinierten Implementierung des Beispiels ICommandSource .

this.Command in diesem Beispiel ist die Command-Eigenschaft für die ICommandSource. Wenn der Befehl nicht NULL ist, wird der Befehl in ein RoutedCommand. Wenn es sich um ein RoutedCommand, wird die Execute Methode aufgerufen, die CommandTarget und die .CommandParameter Wenn der Befehl nicht vorhanden RoutedCommandist, wird er in eine ICommand Umwandlung umgezogen, und die Execute Methode wird aufgerufen, um die CommandParameter.

// If Command is defined, moving the slider will invoke the command;
// Otherwise, the slider will behave normally.
protected override void OnValueChanged(double oldValue, double newValue)
{
    base.OnValueChanged(oldValue, newValue);

    if (this.Command != null)
    {
        RoutedCommand command = Command as RoutedCommand;

        if (command != null)
        {
            command.Execute(CommandParameter, CommandTarget);
        }
        else
        {
            ((ICommand)Command).Execute(CommandParameter);
        }
    }
}
' If Command is defined, moving the slider will invoke the command;
' Otherwise, the slider will behave normally.
Protected Overrides Sub OnValueChanged(ByVal oldValue As Double, ByVal newValue As Double)
    MyBase.OnValueChanged(oldValue, newValue)

    If Me.Command IsNot Nothing Then
        Dim command As RoutedCommand = TryCast(Me.Command, RoutedCommand)

        If command IsNot Nothing Then
            command.Execute(CommandParameter, CommandTarget)
        Else
            CType(Me.Command, ICommand).Execute(CommandParameter)
        End If
    End If
End Sub

Hinweise

Die eigentliche Logik, die RoutedCommand ausgeführt wird, ist nicht in den Execute Methoden enthalten. Execute löst die PreviewExecuted Ereignisse aus Executed , die durch die Elementstruktur tunneln und durchblasen, die nach einem Objekt mit einem CommandBindingObjekt suchen. Wenn eins CommandBinding gefunden RoutedCommand wird, wird der ExecutedRoutedEventHandler angefügte CommandBinding Wert aufgerufen. Diese Handler liefern die Programmierlogik, die die RoutedCommand.

Die PreviewExecuted Ereignisse und Executed Ereignisse werden auf der CommandTarget. Wenn die Einstellung für das CommandTargetICommandSourceElement nicht festgelegt ist, werden die PreviewExecuted Ereignisse und Executed Ereignisse auf dem Element mit Tastaturfokus ausgelöst.

Gilt für: