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);
[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)

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’exemple ICommandSource .

this.Command dans cet exemple se trouve la propriété Command sur le ICommandSource. Si la commande n’est pas null, la commande est convertie 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 convertie en et ICommand 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 événements et Executed , qui tunnel et bulle dans l’arborescence d’éléments à la recherche d’un objet avec un CommandBinding. Si un CommandBinding pour est RoutedCommand trouvé, le ExecutedRoutedEventHandler joint à CommandBinding est appelé. Ces gestionnaires fournissent la logique de programmation qui exécute le RoutedCommand.

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

S’applique à