Freigeben über


RoutedCommand.Execute(Object, IInputElement) Methode

Definition

Führt den RoutedCommand für das aktuelle 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

Der benutzerdefinierte Parameter zur Übergabe an den Handler.

target
IInputElement

Das Element, ab dem nach Befehlshandlern gesucht werden soll.

Attribute

Ausnahmen

Beispiele

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

this.Commandin diesem Beispiel ist die Command-Eigenschaft für .ICommandSource Wenn der Befehl nicht NULL ist, wird der Befehl in einen RoutedCommandumgewandelt. Wenn es sich um ein RoutedCommandhandelt, wird die Execute -Methode aufgerufen und CommandParameterübergebenCommandTarget. Wenn der Befehl kein RoutedCommandist, wird er in ein ICommand umgewandelt, und die Execute -Methode wird aufgerufen, indem der CommandParameterübergeben wird.

// 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 tatsächliche Logik, die ausgeführt wird, RoutedCommand ist nicht in den Execute Methoden enthalten. Execute löst die PreviewExecuted Ereignisse und Executed aus, die tunneln und durch die Elementstruktur auf der Suche nach einem Objekt mit einem CommandBindingblasen. Wenn ein CommandBinding für RoutedCommand gefunden wird, wird das ExecutedRoutedEventHandler angefügte aufgerufen CommandBinding . Diese Handler stellen die Programmierlogik zur Verfügung, die die RoutedCommandausführt.

Die PreviewExecuted Ereignisse und Executed werden für CommandTargetausgelöst. Wenn für nicht CommandTarget festgelegt ICommandSourceist, werden die PreviewExecuted - und Executed -Ereignisse für das -Element mit Tastaturfokus ausgelöst.

Gilt für: