RoutedCommand.Execute(Object, IInputElement) Метод

Определение

Выполняет RoutedCommand для текущего целевого объекта команды.

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)

Параметры

parameter
Object

Пользовательский параметр, передаваемый данному обработчику.

target
IInputElement

Элемент, для которого следует начать поиск обработчиков команд.

Атрибуты

Исключения

Параметр target не является объектом UIElement или ContentElement.

Примеры

Следующий пример является примером пользовательской ICommandSource реализации примера.

this.Command В этом примере является свойством Command в ICommandSource. Если команда не имеет значения NULL, команда приводится к RoutedCommand. Если это RoutedCommand, метод Execute вызывается, передавая CommandTarget и CommandParameter. Если команда не RoutedCommandявляется , она приводится к ICommand и Execute вызывается метод , передавая 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

Комментарии

Фактическая логика RoutedCommand , которая выполняет , не содержится в методах Execute . ExecutePreviewExecuted вызывает события и Executed , которые туннелирует и пузырьк через дерево элементов ищет объект с CommandBinding. При обнаружении CommandBinding для RoutedCommand этого вызывается присоединенный объект .CommandBindingExecutedRoutedEventHandler Эти обработчики предоставляют логику программирования, которая выполняет RoutedCommand.

События PreviewExecuted и Executed создаются для CommandTarget. CommandTarget Если значение не задано для ICommandSource, PreviewExecuted события и Executed вызываются в элементе с фокусом клавиатуры.

Применяется к