ExecutedRoutedEventHandler Delegado
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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 Handled
true
. 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. |