ExecutedRoutedEventHandler Delegado

Definición

Representa el método que va a controlar los eventos enrutados Executed y PreviewExecuted, así como los eventos adjuntos 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

Objeto en que está asociado el controlador de eventos.

e
ExecutedRoutedEventArgs

Datos del evento.

Ejemplos

En este ejemplo se crea un ExecutedRoutedEventHandler objeto que establece una propiedad visual en el destino cuando se ejecuta el comando. En el ejemplo también se incluye para CanExecuteRoutedEventHandler el mismo 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

Comentarios

Este delegado contiene la lógica de implementación de un .RoutedCommand Separar la lógica de implementación del comando permite invocar el comando desde diferentes orígenes y tipos, y habilita la centralización de la lógica de comandos.

Este delegado también se usa para CommandManager.Executed y CommandManager.PreviewExecuted, que son eventos adjuntos en la CommandManager clase que implementa gran parte de la infraestructura de comandos. Pero la mayoría de los controladores prácticos controlarán los Executed eventos de un determinado CommandBinding, en lugar de trabajar en el CommandManager nivel .

Dentro ExecutedRoutedEventArgsde , las siguientes propiedades suelen ser de interés cuando se escribe un controlador de eventos para un evento enrutado que resulta de un comando ejecutado:

  • Source informa del destino donde se ejecutó el comando. Una vez ejecutado el comando, también puede considerar lo Source más generalmente en términos de evento enrutados, como el objeto que generó un evento enrutado.

  • Command informa del comando que se ejecutó. Esta propiedad es útil si usa enlaces de comandos y si escribe controladores que pueden controlar varios comandos.

  • Parameter notifica los parámetros específicos del comando pasados por el comando en ejecución. No todos los comandos usan o esperan parámetros específicos del comando.

  • Handled informa de si el evento enrutado que resultó del comando ejecutado ya lo controló un elemento diferente a lo largo de la ruta. En el caso de los controladores de eventos enrutados, se recomienda tener controladores que realicen un trabajo significativo al controlar el evento para establecer en Handledtrue. Esto impide que los controladores típicos del evento controlen el evento de nuevo más a lo largo de la ruta. Para obtener más información sobre el control de eventos enrutados, vea Marcar eventos enrutados como controlados y Control de clases.

Este delegado también representa controladores para CommandManager.Executed y CommandManager.PreviewExecutedEvent, que son eventos adjuntos en la CommandManager clase que implementa gran parte de la infraestructura de comandos. Pero la mayoría de los controladores prácticos controlarán los Executed eventos de un determinado CommandBinding, en lugar de trabajar en el CommandManager nivel .

Para obtener más información sobre los comandos, consulte Información general sobre los comandos.

Métodos de extensión

GetMethodInfo(Delegate)

Obtiene un objeto que representa el método representado por el delegado especificado.

Se aplica a

Consulte también