RoutedCommand.Execute(Object, IInputElement) Method

Definition

Esegue RoutedCommand in corrispondenza della destinazione corrente del comando.Executes the RoutedCommand on the current command target.

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
Public Sub Execute (parameter As Object, target As IInputElement)

Parameters

parameter
Object

Parametro definito dall'utente da passare al gestore.User defined parameter to be passed to the handler.

target
IInputElement

Elemento in cui effettuare la ricerca dei gestori di comando.Element at which to begin looking for command handlers.

Attributes

Exceptions

target non è un oggetto UIElementContentElement.target is not a UIElement or ContentElement.

Examples

Nell'esempio seguente viene da un'implementazione personalizzata di ICommandSource esempio.The following example is from a custom implementation of ICommandSource sample.

this.Command in questo esempio è la proprietà Command della ICommandSource.this.Command in this example is the Command property on the ICommandSource. Se il comando non è null, viene eseguito il cast del comando a un RoutedCommand.If the command is not null, the command is cast to a RoutedCommand. Se è un RoutedCommand, viene chiamato il metodo Execute passando il CommandTarget e il CommandParameter.If it is a RoutedCommand, then the Execute method is called passing the CommandTarget and the CommandParameter. Se il comando non è un RoutedCommand, viene eseguito il cast a una ICommand e il metodo Execute viene chiamato passando il 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

Remarks

La logica effettiva che esegue l'RoutedCommand non è contenuta nei metodi di Execute.The actual logic that executes the RoutedCommand is not contained in the Execute methods. Execute genera gli eventi PreviewExecuted e Executed, che effettuano il tunneling e la bolla attraverso l'albero degli elementi che cerca un oggetto con CommandBinding.Execute raises the PreviewExecuted and Executed events, which tunnel and bubble through the element tree looking for an object with a CommandBinding. Se viene individuato un CommandBinding per tale RoutedCommand, viene chiamato il ExecutedRoutedEventHandler collegato a CommandBinding.If a CommandBinding for that RoutedCommand is found, then the ExecutedRoutedEventHandler attached to CommandBinding is called. Questi gestori forniscono la logica di programmazione che esegue la RoutedCommand.These handlers supply the programming logic that performs the RoutedCommand.

Gli eventi PreviewExecuted e Executed vengono generati nella CommandTarget.The PreviewExecuted and Executed events are raised on the CommandTarget. Se il CommandTarget non è impostato sul ICommandSource, vengono generati gli eventi di PreviewExecuted e Executed sull'elemento con lo stato attivo della tastiera.If the CommandTarget is not set on the ICommandSource, the PreviewExecuted and Executed events are raised on the element with keyboard focus.

Applies to