RoutedCommand.Execute(Object, IInputElement) Méthode

Définition

Exécute le RoutedCommand sur la cible de la commande actuelle.

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
[<System.Security.SecurityCritical>]
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.

target
IInputElement

Élément sur lequel commencer à rechercher des gestionnaires de commandes.

Attributs

Exceptions

Exemples

L’exemple suivant provient d’une implémentation personnalisée de l' ICommandSource exemple.

this.Command dans cet exemple, il s’agit de la propriété Command sur le ICommandSource . Si la commande n’est pas null, la commande est castée en RoutedCommand . S’il s’agit d’un RoutedCommand , la Execute méthode est appelée en passant le CommandTarget et le CommandParameter . Si la commande n’est pas un RoutedCommand , elle est castée en ICommand et la Execute méthode est appelée en passant le 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 le RoutedCommand n’est pas contenue dans les Execute méthodes. Execute déclenche les PreviewExecuted Executed événements et, qui effectuent le tunneling et la propagation dans l’arborescence d’éléments qui recherche un objet avec un CommandBinding . Si un CommandBinding pour RoutedCommand est trouvé, le ExecutedRoutedEventHandler attaché à CommandBinding est appelé. Ces gestionnaires fournissent la logique de programmation qui exécute RoutedCommand .

Les PreviewExecuted Executed événements et sont déclenchés sur le CommandTarget . Si CommandTarget n’est pas défini sur ICommandSource , les PreviewExecuted événements et Executed sont déclenchés sur l’élément avec le focus clavier.

S’applique à