RoutedCommand.Execute(Object, IInputElement) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Executa o RoutedCommand no destino de comando atual.
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 pelo usuário a ser passado para o manipulador.
- target
- IInputElement
Elemento no qual começar a procurar por manipuladores de comandos.
- Atributos
Exceções
target
não é um UIElement ou ContentElement.
Exemplos
O exemplo a seguir é de uma implementação personalizada de ICommandSource exemplo.
this.Command
neste exemplo, é a propriedade Command no ICommandSource. Se o comando não for nulo, o comando será convertido em um RoutedCommand. Se for um RoutedCommand, o Execute método será chamado passando o CommandTarget e o CommandParameter. Se o comando não for um RoutedCommand, ele será convertido em um ICommand e o Execute método será chamado passando o 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
Comentários
A lógica real que executa o RoutedCommand não está contida nos Execute métodos. Execute gera os PreviewExecuted eventos e Executed , que túnel e bolha através da árvore de elementos à procura de um objeto com um CommandBinding. Se um CommandBinding for RoutedCommand encontrado, o ExecutedRoutedEventHandler anexado será CommandBinding chamado. Esses manipuladores fornecem a lógica de programação que executa o RoutedCommand.
Os PreviewExecuted eventos e Executed são gerados no CommandTarget. Se o CommandTarget não estiver definido no ICommandSource, os PreviewExecuted eventos e Executed serão gerados no elemento com foco no teclado.