2010-09-27 26 views
9

existiert habe ich eine Datenraster Ladereihen EreignisÜberprüfen Sie, ob ein Ereignis bereits

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

und im Handler ich ein anderes Ereignis erschaffe. Wie kann ich im folgenden Code wissen, ob das MouseLeftBtn-Ereignis für diese Zeile bereits vorhanden ist?

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

Danke,

Voodoo

+0

Möchten Sie testen, dass ein Ereignishandler angehängt ist, so dass Sie nicht mehr als ein Ereignis anhängen? d. h., das LoadingRow-Ereignis wird möglicherweise mehr als einmal pro Zeile ausgelöst? – aqwert

+0

Ja, in '_gridObj_LoadingRow' ist das' MouseLeftButtonUp'-Ereignis mehrfach angehängt. Ich möchte überprüfen, ob das 'MouseLeftButtonUp'-Ereignis bereits angehängt ist, deshalb registriere ich kein anderes Ereignis dafür. Es feuert das 'MouseLeftButtonUp' in meinem Fall hier mehrfach ab. – VoodooChild

+0

Ok, ich habe eine Antwort hinzugefügt, die Ihren Anforderungen entsprechen sollte. – aqwert

Antwort

13

Basierend auf Ihren Kommentar, dass Sie nicht wollen, muliple Handler in diesem Fall habe ich erneut abonnieren abbestellen dann befestigen. Es wird kein Fehler beim Abmelden ausgegeben, wenn keiner existiert und nur ein Handler gewährleistet ist.

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

+1, danke, dass dein Weg funktioniert zu haben scheint. – VoodooChild

Verwandte Themen