Compartilhar via


ExecutedRoutedEventHandler Delegar

Definição

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.

e
ExecutedRoutedEventArgs

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.

Aplica-se a

Confira também