2010-09-27 27 views
9

tengo un evento de cuadrícula de datos de carga filaComprobar si un evento ya existe

_gridObj.LoadingRow += new EventHandler<DataGridRowEventArgs>(_gridObj_LoadingRow); 

y en el controlador estoy creando otro evento. En el siguiente código, ¿cómo puedo saber si el evento MouseLeftBtn ya existe para esa fila?

void _gridObj_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.MouseLeftButtonUp += new MouseButtonEventHandler(Row_MouseLeftButtonUp); 
} 

Gracias,

Voodoo

+0

¿Desea probar que se adjunta un controlador de eventos para que no pueda adjuntar más de un evento? Es decir, ¿el evento LoadingRow podría dispararse más de una vez por fila? – aqwert

+0

Sí, en el '_gridObj_LoadingRow' el evento' MouseLeftButtonUp' se adjunta varias veces. Quiero verificar si el evento 'MouseLeftButtonUp' ya está adjunto, así que no registro otro evento para él. Está disparando el 'MouseLeftButtonUp' varias veces en mi caso aquí. – VoodooChild

+0

Ok, he agregado una respuesta que debería cumplir con sus requisitos. – aqwert

Respuesta

13

Basado en su comentario que usted no desea asociar controladores Muliple en este caso, a continuación, volver a suscribirse darme de baja. No da error al cancelar la suscripción si no existe y garantiza solo un manejador.

void _gridObj_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.MouseLeftButtonUp -= new MouseButtonEventHandler(Row_MouseLeftButtonUp); 
    e.Row.MouseLeftButtonUp += new MouseButtonEventHandler(Row_MouseLeftButtonUp); 
} 
+0

+1, gracias por su forma parecía haber funcionado. – VoodooChild

Cuestiones relacionadas