RoutedCommand.Execute(Object, IInputElement) Methode

Definition

Führt den RoutedCommand für das aktuelle Befehlsziel aus.Executes the RoutedCommand on the current command target.

public:
 void Execute(System::Object ^ parameter, System::Windows::IInputElement ^ target);
public void Execute (object parameter, System.Windows.IInputElement target);
[System.Security.SecurityCritical]
public void Execute (object parameter, System.Windows.IInputElement target);
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.User defined parameter to be passed to the handler.

target
IInputElement

Das Element, ab dem nach Befehlshandlern gesucht werden soll.Element at which to begin looking for command handlers.

Attribute

Ausnahmen

target ist kein UIElement und keine ContentElement.target is not a UIElement or ContentElement.

Beispiele

Das folgende Beispiel basiert auf einer benutzerdefinierten Implementierung von ICommandSource-Beispiel.The following example is from a custom implementation of ICommandSource sample.

this.Command in diesem Beispiel ist die Befehls Eigenschaft für die ICommandSource.this.Command in this example is the Command property on the ICommandSource. Wenn der Befehl nicht NULL ist, wird der Befehl in eine RoutedCommandumgewandelt.If the command is not null, the command is cast to a RoutedCommand. Wenn es sich um einen RoutedCommandhandelt, wird die Execute-Methode aufgerufen, wobei die CommandTarget und die CommandParameterübergeben werden.If it is a RoutedCommand, then the Execute method is called passing the CommandTarget and the CommandParameter. Wenn der Befehl keine RoutedCommandist, wird er in eine ICommand umgewandelt, und die Execute-Methode wird als übergeben der CommandParameteraufgerufen.If the command is not a RoutedCommand, it is cast to an ICommand and the Execute method is called passing the 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 tatsächliche Logik, die die RoutedCommand ausführt, ist nicht in den Execute-Methoden enthalten.The actual logic that executes the RoutedCommand is not contained in the Execute methods. Execute löst die Ereignisse PreviewExecuted und Executed aus, bei denen ein Tunnel und eine Blase durch die Elementstruktur durchsucht wird, die nach einem Objekt mit einem CommandBindingsucht.Execute raises the PreviewExecuted and Executed events, which tunnel and bubble through the element tree looking for an object with a CommandBinding. Wenn eine CommandBinding für diese RoutedCommand gefunden wird, wird die an CommandBinding angefügte ExecutedRoutedEventHandler aufgerufen.If a CommandBinding for that RoutedCommand is found, then the ExecutedRoutedEventHandler attached to CommandBinding is called. Diese Handler stellen die Programmierlogik bereit, die die RoutedCommandausführt.These handlers supply the programming logic that performs the RoutedCommand.

Die PreviewExecuted-und Executed Ereignisse werden auf dem CommandTargetausgelöst.The PreviewExecuted and Executed events are raised on the CommandTarget. Wenn die CommandTarget für die ICommandSourcenicht festgelegt ist, werden die Ereignisse PreviewExecuted und Executed für das Element mit dem Tastaturfokus ausgelöst.If the CommandTarget is not set on the ICommandSource, the PreviewExecuted and Executed events are raised on the element with keyboard focus.

Gilt für: