2010-10-17 11 views
7

¿Cuál es la diferencia entre estos dos:debo usar RoutedEventHandler

_btnAddNew.Click += OnAddNewClick; 

_btnAddNew.Click += new RoutedEventHandler(OnAddNewClick); 

Gracias !!

Respuesta

10

No hay diferencia ... el primero es un atajo para el segundo.

De hecho, si se intenta en ambos sentidos, a continuación, utilizar el reflector a desmontar el conjunto, se puede ver que es exactamente lo mismo y ambos se interpreta como:

_btnAddNew.Click += new RoutedEventHandler(OnAddNewClick); 
+0

Sin embargo, el primero es mucho más agradable de leer. :) – Vlad

0

copia de: http://msdn.microsoft.com/en-us/library/system.windows.routedeventhandler.aspx

El delegado RoutedEventHandler se utiliza para cualquier evento enrutado que no informe información específica del evento en los datos del evento. Hay muchos de estos eventos enrutados; ejemplos prominentes incluyen Click y Loaded.

La diferencia más notable entre escribir un controlador para un evento enrutado en oposición a un evento general de tiempo de ejecución común (CLR) es que no se puede considerar que el remitente del evento (el elemento al que se asocia e invoca el controlador) necesariamente sea la fuente del evento. La fuente se informa como una propiedad en los datos del evento (Fuente). Una diferencia entre el emisor y el origen es el resultado de que el evento se enrute a diferentes elementos, durante el recorrido del evento enrutado a través de un árbol de elementos.

Puede usar remitente o Fuente para una referencia de objeto si deliberadamente no le interesa el comportamiento de enrutamiento de un evento enrutado directo o burbujeante y solo tiene la intención de gestionar eventos enrutados en los elementos donde se generan por primera vez. En esta circunstancia, el emisor y la Fuente son el mismo objeto.

Si tiene la intención de aprovechar las características inherentes de los eventos enrutados y escribir sus manejadores según corresponda, las dos propiedades más importantes de los datos de evento con los que trabajará al escribir manejadores de eventos son Fuente y Manejado.

Para ciertas combinaciones de eventos de entrada y clases de control WPF, el elemento que genera el evento no es el primer elemento que tiene la oportunidad de manejarlo. Si el evento de entrada tiene una versión de vista previa del evento, la raíz del árbol de elementos tiene la primera oportunidad, puede configurar Handled en true en los datos de eventos compartidos y puede influir en cómo se informa el evento de entrada a los elementos restantes en su ruta de eventos . El comportamiento de manejo de Vista previa puede dar la apariencia de que un evento enrutado particular no se plantea como se esperaba. Para obtener más información, vea Vista previa de eventos y Introducción a la entrada.