RoutedCommand.Execute(Object, IInputElement) Méthode

Définition

Exécute le RoutedCommand sur la cible de la commande actuelle.Executes the RoutedCommand on the current command target.

public:
 void Execute(System::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)

Paramètres

parameter
Object

Paramètre défini par l'utilisateur à passer au gestionnaire.User defined parameter to be passed to the handler.

target
IInputElement

Élément sur lequel commencer à rechercher des gestionnaires de commandes.Element at which to begin looking for command handlers.

Attributs

Exceptions

Exemples

L’exemple suivant provient d’une implémentation personnalisée de ICommandSource exemple.The following example is from a custom implementation of ICommandSource sample.

this.Command dans cet exemple est la propriété Command du ICommandSource.this.Command in this example is the Command property on the ICommandSource. Si la commande n’est pas null, la commande est convertie en RoutedCommand.If the command is not null, the command is cast to a RoutedCommand. S’il s’agit d’un RoutedCommand, la méthode Execute est appelée en passant la CommandTarget et le CommandParameter.If it is a RoutedCommand, then the Execute method is called passing the CommandTarget and the CommandParameter. Si la commande n’est pas un RoutedCommand, elle est convertie en ICommand et la méthode Execute est appelée en passant le CommandParameter.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

Remarques

La logique réelle qui exécute l' RoutedCommand n’est pas contenue dans les méthodes de Execute.The actual logic that executes the RoutedCommand is not contained in the Execute methods. Execute déclenche les événements PreviewExecuted et Executed, qui effectuent le tunneling et la propagation dans l’arborescence d’éléments qui recherche un objet avec un CommandBinding.Execute raises the PreviewExecuted and Executed events, which tunnel and bubble through the element tree looking for an object with a CommandBinding. Si un CommandBinding pour ce RoutedCommand est trouvé, le ExecutedRoutedEventHandler attaché à CommandBinding est appelé.If a CommandBinding for that RoutedCommand is found, then the ExecutedRoutedEventHandler attached to CommandBinding is called. Ces gestionnaires fournissent la logique de programmation qui exécute l' RoutedCommand.These handlers supply the programming logic that performs the RoutedCommand.

Les événements PreviewExecuted et Executed sont déclenchés sur le CommandTarget.The PreviewExecuted and Executed events are raised on the CommandTarget. Si le CommandTarget n’est pas défini sur l' ICommandSource, les événements PreviewExecuted et Executed sont déclenchés sur l’élément avec le focus clavier.If the CommandTarget is not set on the ICommandSource, the PreviewExecuted and Executed events are raised on the element with keyboard focus.

S’applique à