ExecutedRoutedEventHandler Delegar

Definição

Representa o método que manipulará os Executed eventos roteados e PreviewExecuted 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 uma ExecutedRoutedEventHandler propriedade visual no destino quando o comando é executado. O exemplo também inclui o CanExecuteRoutedEventHandler 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 funcionar no CommandManager nível.

Dentro 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 é executado, você também pode 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 do 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 tratado por um elemento diferente ao longo da rota. Para manipuladores de eventos roteados, é uma prática recomendada ter manipuladores que fazem um trabalho significativo ao lidar com o evento a ser definido Handled como true. Isso impede que manipuladores típicos do evento manirem o evento novamente mais adiante ao longo da rota. Para obter mais informações sobre como lidar com eventos roteado, consulte Marcando eventos roteado como manipulados e manipulação 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 funcionar no CommandManager nível.

Para obter mais informações sobre comandos, consulte Visão geral do comando.

Métodos de Extensão

Nome Description
GetMethodInfo(Delegate)

Obtém um objeto que representa o método representado pelo delegado especificado.

Aplica-se a

Confira também