ExecutedRoutedEventHandler Delegar
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.
Representa o método que manipulará os eventos roteados Executed e PreviewExecuted, bem como os eventos anexados relacionados.
public delegate void ExecutedRoutedEventHandler(System::Object ^ sender, ExecutedRoutedEventArgs ^ e);
public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);
type ExecutedRoutedEventHandler = delegate of obj * ExecutedRoutedEventArgs -> unit
Public Delegate Sub ExecutedRoutedEventHandler(sender As Object, e As ExecutedRoutedEventArgs)
Parâmetros
- sender
- Object
O objeto em que o manipulador de eventos está anexado.
Os dados do evento.
Exemplos
Este exemplo cria um ExecutedRoutedEventHandler que define uma propriedade visual no destino quando o comando é executado. O exemplo também inclui o CanExecuteRoutedEventHandler para o mesmo comando.
// ExecutedRoutedEventHandler for the custom color command.
private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
Panel target = e.Source as Panel;
if (target != null)
{
if (target.Background == Brushes.AliceBlue)
{
target.Background = Brushes.LemonChiffon;
}
else
{
target.Background = Brushes.AliceBlue;
}
}
}
// CanExecuteRoutedEventHandler for the custom color command.
private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (e.Source is Panel)
{
e.CanExecute = true;
}
else
{
e.CanExecute = false;
}
}
' ExecutedRoutedEventHandler for the custom color command.
Private Sub ColorCmdExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
Dim target As Panel = TryCast(e.Source, Panel)
If target IsNot Nothing Then
If target.Background Is Brushes.AliceBlue Then
target.Background = Brushes.LemonChiffon
Else
target.Background = Brushes.AliceBlue
End If
End If
End Sub
' CanExecuteRoutedEventHandler for the custom color command.
Private Sub ColorCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
If TypeOf e.Source Is Panel Then
e.CanExecute = True
Else
e.CanExecute = False
End If
End Sub
Comentários
Esse delegado contém a lógica de implementação de um RoutedCommand. Separar a lógica de implementação do comando permite que o comando seja invocado de diferentes fontes e tipos e permite a centralização da lógica de comando.
Esse delegado também é usado para CommandManager.Executed e CommandManager.PreviewExecuted, que são eventos anexados na CommandManager classe que implementa grande parte da infraestrutura de comando. Mas a maioria dos manipuladores práticos lidará com os Executed eventos de um determinado CommandBinding, em vez de trabalhar no CommandManager nível.
No ExecutedRoutedEventArgs, as seguintes propriedades geralmente são de interesse quando você escreve um manipulador de eventos para um evento roteado que resulta de um comando executado:
Source relata o destino em que o comando foi executado. Depois que o comando for executado, você também poderá pensar no Source mais geral em termos de evento roteados, como o objeto que gerou um evento roteado.
Command relata o comando executado. Essa propriedade será útil se você usar associações de comando e se você escrever manipuladores que potencialmente manipulam vários comandos.
Parameter relata todos os parâmetros específicos de comando que foram passados pelo comando em execução. Nem todos os comandos usam ou esperam parâmetros específicos do comando.
Handled relata se o evento roteado resultante do comando executado já foi manipulado por um elemento diferente ao longo da rota. Para manipuladores de eventos roteados, é recomendável ter manipuladores que fazem um trabalho significativo ao manipular o evento para definir Handled como
true
. Isso impede que manipuladores típicos do evento processem o evento novamente ao longo da rota. Para obter mais informações sobre como lidar com eventos roteado, consulte Marcando eventos roteado como manipulados e Tratamento de Classe.
Esse delegado também representa manipuladores para CommandManager.Executed e CommandManager.PreviewExecutedEvent, que são eventos anexados na CommandManager classe que implementa grande parte da infraestrutura de comando. Mas a maioria dos manipuladores práticos lidará com os Executed eventos de um determinado CommandBinding, em vez de trabalhar no CommandManager nível.
Para obter mais informações sobre comandos, consulte Visão geral dos comandos.
Métodos de Extensão
GetMethodInfo(Delegate) |
Obtém um objeto que representa o método representado pelo delegado especificado. |