ExecutedRoutedEventHandler Delegar

Definição

Representa o método que irá lidar com os Executed eventos e PreviewExecuted encaminhados, bem como eventos associados 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 onde o gestor de eventos está ligado.

e
ExecutedRoutedEventArgs

Os dados do evento.

Exemplos

Este exemplo cria uma ExecutedRoutedEventHandler que define uma propriedade visual no alvo quando o comando é executado. O exemplo inclui também 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

Observações

Este delegado contém a lógica de implementação para um RoutedCommand. Separar a lógica de implementação do comando permite invocar o comando a partir de diferentes fontes e tipos, e possibilita a centralização da lógica de comandos.

Este 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 gerirá os Executed eventos a partir de um determinado CommandBinding, em vez de trabalhar ao nível CommandManager .

Dentro de ExecutedRoutedEventArgs, as seguintes propriedades são geralmente de interesse quando escreve um gestor de eventos para um evento encaminhado que resulta de um comando executado:

  • Source reporta o alvo onde a ordem foi executada. Uma vez executado o comando, também se pode pensar Source no evento roteado, de forma mais geral, como o objeto que gerou um evento roteado.

  • Command reporta o comando que foi executado. Esta propriedade é útil se usares associações de comandos e se escreveres handlers que potencialmente lidam com múltiplos comandos.

  • Parameter reporta quaisquer parâmetros específicos de comando que tenham sido passados pelo comando em execução. Nem todos os comandos usam ou esperam parâmetros específicos de cada comando.

  • Handled indica se o evento encaminhado resultante do comando executado já foi tratado por outro elemento ao longo da rota. Para gestores de eventos encaminhados, é uma prática recomendada ter manipuladores que realizam trabalho significativo ao gerir o evento para definir Handled como true. Isto impede que os manipuladores típicos do evento o tratem novamente mais ao longo da rota. Para mais informações sobre o tratamento de eventos encaminhados, veja Marcar Eventos Encaminhados como Tratados e Gestão de Classes.

Este delegado também representa os handlers 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 gerirá os Executed eventos a partir de um determinado CommandBinding, em vez de trabalhar ao nível CommandManager .

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

Métodos da Extensão

Name Description
GetMethodInfo(Delegate)

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

Aplica-se a

Ver também