2010-09-27 1 views
9

Ho un evento di griglia di dati fila caricoVerificare se un evento esiste già

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

e nel gestore che sto creando un altro evento. Nel seguente codice come posso sapere se l'evento MouseLeftBtn esiste già per quella riga?

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

Grazie,

Voodoo

+0

Si desidera verificare che un gestore eventi sia collegato in modo da non allegare più di un evento? l'evento LoadingRow potrebbe essere licenziato più di una volta per riga? – aqwert

+0

Sì, in '_gridObj_LoadingRow' l'evento' MouseLeftButtonUp' viene allegato più volte. Voglio verificare se l'evento 'MouseLeftButtonUp' è già collegato, quindi non registro un altro evento per questo. Spara il 'MouseLeftButtonUp' più volte nel mio caso qui. – VoodooChild

+0

Ok, ho aggiunto una risposta che dovrebbe soddisfare le tue esigenze. – aqwert

risposta

13

Sulla base di un commento che non si desidera collegare i gestori muliple in questo caso ho Cancellati quindi resubscribe. Non fornisce un errore di annullamento dell'iscrizione se non ne esiste nessuno e garantisce un solo gestore.

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

+1, grazie il tuo modo sembrava aver funzionato. – VoodooChild