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 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
target
ist kein UIElement und keine ContentElement.
Beispiele
Das folgende Beispiel stammt aus einer benutzerdefinierten Implementierung des Beispiels ICommandSource .
this.Command
in 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.