RoutedCommand.Execute(Object, IInputElement) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
target ist kein UIElement oder ContentElement.
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.