RoutedCommand.Execute(Object, IInputElement) Metoda

Definice

Provede příkaz RoutedCommand na aktuálním cíli příkazu.

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)

Parametry

parameter
Object

Parametr definovaný uživatelem, který se má předat obslužné rutině.

target
IInputElement

Element, ve kterém chcete začít hledat obslužné rutiny příkazů.

Atributy

Výjimky

Příklady

Následující příklad je z vlastní implementace ukázky ICommandSource .

this.Command v tomto příkladu je vlastnost Command na ICommandSource. Pokud příkaz nemá hodnotu null, je příkaz přetypován na RoutedCommand. Pokud se jedná o RoutedCommand, pak se Execute metoda nazývá předávání CommandTarget a CommandParameter. Pokud příkaz není RoutedCommand, je přetypován na objekt ICommand a Execute metoda se nazývá předání .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

Poznámky

Skutečná logika, která provádí metodu RoutedCommand , není obsažena Execute v metodách. ExecutePreviewExecuted vyvolává události aExecuted, které tunelují a bubliny procházejí stromem prvků a hledají objekt s CommandBinding. Pokud je nalezena CommandBinding hodnota pro RoutedCommand , pak ExecutedRoutedEventHandler je volána připojená k CommandBinding . Tyto obslužné rutiny poskytují programovací logiku RoutedCommand, která provádí .

Události PreviewExecuted a Executed jsou vyvolány na CommandTarget. CommandTarget Pokud není nastavena na ICommandSource, PreviewExecuted události a Executed jsou vyvolány na elementu s fokusem klávesnice.

Platí pro