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 . Execute PreviewExecuted вызывает события и Executed , которые туннелирует и пузырьк через дерево элементов ищет объект с CommandBinding. При обнаружении CommandBinding для RoutedCommand этого вызывается присоединенный объект .CommandBindingExecutedRoutedEventHandler Эти обработчики предоставляют логику программирования, которая выполняет RoutedCommand.
События PreviewExecuted и Executed создаются для CommandTarget. CommandTarget Если значение не задано для ICommandSource, PreviewExecuted события и Executed вызываются в элементе с фокусом клавиатуры.