2010-09-27 15 views
9

मौजूद है मैं एक डेटा ग्रिड लोड हो रहा है पंक्ति घटनाजांच करें कि कोई अन्य घटना के

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

और हैंडलर में मैं एक और घटना का निर्माण कर रहा हूँ है। निम्न कोड में मुझे कैसे पता चलेगा कि MouseLeftBtn ईवेंट उस पंक्ति के लिए पहले से मौजूद है या नहीं?

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

धन्यवाद,

वूडू

+0

क्या आप परीक्षण करना चाहते हैं कि एक ईवेंट हैंडलर संलग्न है ताकि आप एक से अधिक ईवेंट संलग्न न करें? यानी लोडिंगरो घटना प्रति पंक्ति एक से अधिक बार निकाल दी जा सकती है? – aqwert

+0

हां, '_gridObj_LoadingRow' में 'MouseLeftButtonUp' ईवेंट कई बार संलग्न है। मैं यह जांचना चाहता हूं कि 'MouseLeftButtonUp' ईवेंट पहले ही संलग्न है या नहीं, इसलिए मैं इसके लिए एक और ईवेंट पंजीकृत नहीं करता हूं। यह मेरे मामले में 'MouseLeftButtonUp' कई बार फायरिंग कर रहा है। – VoodooChild

+0

ठीक है, मैंने एक उत्तर जोड़ा है जो आपकी आवश्यकताओं को पूरा करना चाहिए। – aqwert

उत्तर

13

अपनी टिप्पणी है कि आप इस मामले मैं तो पुन: सदस्यता सदस्यता समाप्त में muliple संचालकों संलग्न करने के लिए नहीं करना चाहते हैं के आधार पर। यदि कोई मौजूद नहीं है और केवल एक हैंडलर सुनिश्चित करता है तो यह सदस्यता रद्द करने में कोई त्रुटि नहीं देता है।

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

+1, धन्यवाद आपका तरीका काम करता प्रतीत होता है। – VoodooChild

संबंधित मुद्दे