wpf - C# - issue with custom raising events -


मेरे पास मेरा वर्ग है जहां मैं अपनी घटना को परिभाषित करता हूं:

  सार्वजनिक वर्ग EventRaiserUtility {सार्वजनिक इवेंट इवेंटहैंडलर अद्यतनसूची; सार्वजनिक शून्य अद्यतन LISTEvent () {यदि (updateList! = Null) {updateList (यह, EventArgs.Empty); }} सार्वजनिक स्थिर EventRaiserUtility raiser = नई EventRaiserUtility (); }   

और यह वह जगह है जहां मैं अपनी घटना बढ़ाता हूं:

  EventRaiserUtility.raiser.updateListEvent ();   

और अंत में यह वह जगह है जहां मैं श्रोता बनाने की कोशिश कर रहा हूं:

  ... EventRaiserUtility.raiser.updateList + = नए इवेंटहाँडलर (raiser_updateList) ; // दूसरे वर्ग की init विधि में रखा ... निजी शून्य रहित raiser_updateList (ऑब्जेक्ट प्रेषक, EventArgs ई) {connType = MainWindowViewModel.getTTC (); }   

बस: इस घटना को सूचित करना होगा जब एक सूची अपडेट की जाती है और फिर getTTC () के साथ raiser_updateList

लेकिन raiser_updateList कभी भी नहीं कहा जाता है। क्यूं कर? कोड के सभी 3 स्निपेट 3 अलग-अलग वर्गों (एक ही परियोजना) में हैं, लेकिन यह कोई समस्या नहीं है ... सही?

आप updateListEvent पर कॉल करने से पहले एक नया EventRaiserUtility बना रहे हैं (जिसका पालन करने के लिए पूंजी U होना चाहिए नेट सम्मेलनों, जिस तरह से; updateList = & gt; UpdateList ) - लेकिन आप अलग EventRaiserUtility ईवेंट की सदस्यता लेने के लिए वे अलग-अलग ऑब्जेक्ट हैं, इसलिए अलग-अलग इवेंट सब्सक्राइबर हैं। अगर आप हमेशा घटना की स्थापना करने से पहले एक नई वस्तु बनाते हैं, तो कभी कोई भी सदस्य नहीं हो सकता।

आपको एकल EventRaiserUtility < / कोड> युक्त वर्ग में एक उदाहरण चर में संग्रहीत - आप उस निर्माण पर बना सकते हैं, तो घटना को एक ही स्थान पर एक दूसरे में बढ़ाएं ... लेकिन क्योंकि वे उसी के बारे में बात करेंगे EventRaiserUtility ऑब्जेक्ट, आप सदस्यता खोना नहीं चाहते हैं।

(यह स्पष्ट नहीं है कि इस उपयोगिता वर्ग का वास्तव में बहुत मूल्य है, ईमानदार होना - आप केवल अपने कार्यक्रम में क्यों नहीं घोषित कर रहे हैं क्लास सीधे? और क्यों अपने खुद के प्रतिनिधि को घोषित करते हैं जब इवेंटहैंडलर बिल्कुल एक ही हस्ताक्षर है?)

Comments

Popular posts from this blog

Out of index C/C++ -

regex - PatternSyntaxException: while using String.ReplaceAll function in java? -

java - Projects which are accessed via multiple (different) IDEs: Ant or Maven? -