RoutedCommand.Execute(Object, IInputElement) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Ejecuta RoutedCommand en el destino de comando actual.
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)
Parámetros
- parameter
- Object
Parámetro definido por el usuario que se va a pasar al controlador.
- target
- IInputElement
Elemento en el se debe comenzar a buscar controladores de comando.
- Atributos
Excepciones
target
no es UIElement ni ContentElement.
Ejemplos
El ejemplo siguiente procede de una implementación personalizada de ICommandSource ejemplo.
this.Command
en este ejemplo, es la propiedad Command de ICommandSource. Si el comando no es null, el comando se convierte en .RoutedCommand Si es , RoutedCommandse llama al Execute método pasando y CommandTarget .CommandParameter Si el comando no es , RoutedCommandse convierte en y ICommand se llama al Execute método pasando .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
Comentarios
La lógica real que ejecuta no RoutedCommand está contenida en los Execute métodos . Execute genera los PreviewExecuted eventos y Executed , que tuneliza y propaga a través del árbol de elementos que busca un objeto con un CommandBinding. Si se encuentra un CommandBinding para , RoutedCommand se llama al asociado a CommandBinding .ExecutedRoutedEventHandler Estos controladores proporcionan la lógica de programación que realiza .RoutedCommand
Los PreviewExecuted eventos y Executed se generan en .CommandTarget CommandTarget Si no se establece en ICommandSource, los PreviewExecuted eventos y Executed se generan en el elemento con foco de teclado.