2010-07-14 11 views
6

मैं इस प्रकार कुछ कोड के साथ काम कर रहा हूं जो इस प्रकार संरचित है:मैं अपनी कक्षाओं के बीच प्रतिनिधियों को कैसे स्थापित करूं?

फॉर्म ए में उपयोगकर्ता इसके अंदर बी और जी को नियंत्रित करता है। उपयोगकर्ता नियंत्रण बी में उपयोगकर्ता नियंत्रण डी है, और उपयोगकर्ता नियंत्रण डी में "ताज़ा करें" विधि है। उपयोगकर्ता नियंत्रण जी में उपयोगकर्ता नियंत्रण एफ है, और उपयोगकर्ता नियंत्रण एफ को डी

1) कोड को पुनर्गठन करने की आवश्यकता है (यह विरासत कोड है, इसलिए यह एक विकल्प के रूप में तालिका से बाहर है) , इस मुद्दे को संभालने के बारे में जाने का सबसे अच्छा तरीका प्रतिनिधि हैं? यदि नहीं, तो क्या आपके पास एक और सुझाव है?

2) मुझे प्रतिनिधि कार्यों के साथ कोई अनुभव नहीं है - क्या कोई अच्छा प्राइमर या उदाहरण है जिसे मैं वांछित कार्यक्षमता प्राप्त करने के लिए अपने कोड को अनुकूलित करने के लिए उपयोग कर सकता हूं?

उत्तर

4

सबसे पहले, एफ को डी और इसके ताज़ा कार्य के बारे में कुछ भी नहीं पता होना चाहिए। घटना को एफ में जोड़ें, जो आवश्यक होने पर उठाया जाता है। यदि फॉर्म ए को एफ के बारे में पता है, तो ए से इस घटना के लिए सबस्किब करें। यदि नहीं, तो जी में इसी तरह की घटना करें, और ए में एक सदस्यता लें। एक ईवेंट हैंडलर में, सीधे ताज़ा करें, या बी विधि को कॉल करें, जिसे डी। रीफ्रेश कहते हैं।

ऐसा लगता है कि मेरा उत्तर की तरह और भी कम अपने प्रश्न से पढ़ी जा सकती है :) यह इस तरह दिखना चाहिए:

एफ घटना को जन्म देती है -> जी एफ के कार्यक्रम को संभालती है और घटना को जन्म देती है -> एक जी की घटना को संभालती है और बी प्रणाली को बुलाती है -> बी विधि D.refresh

+0

@ रेवेन आप प्रतिनिधियों के साथ सही रास्ते पर हैं। घटनाओं का उपयोग प्रतिनिधियों का उपयोग करके घोषित किया जाता है ताकि पहले प्रतिनिधियों को सीखना एक अच्छा विचार हो। –

0

कॉल प्रतिनिधियों यह देखने के लिए: http://www.akadia.com/services/dotnet_delegates_and_events.html

घटनाओं आप करना है के लिए सुनिश्चित करें कि सामान सही क्रम में होकर गुजरता है। वर्तमान परिदृश्य में, मैं अनुमान लगाता हूं कि जी से एक इवेंट का पर्दाफाश करना एक अच्छा तरीका होगा, जब एफ में कुछ बदलाव होता है तो ट्रिगर हो जाना चाहिए। और हमारे पास बी में इस घटना के लिए एक हैंडलर सब्सक्राइब होगा जो अंततः रीफ्रेश कॉल करेगा। माता-पिता से बच्चे को कॉल करने के लिए कुछ और घटनाएं और प्रतिनिधि शामिल होंगे और इसके विपरीत। एक यांत्रिक डिवाइस की अवधारणा को ध्यान में रखें: भाग जो आंदोलन शुरू करता है वह वह है जो दूसरों को ट्रिगर करता है (ईवेंट बढ़ाता है)। जब दूसरे स्थानांतरित होते हैं तो वे अन्य संबंधित हिस्सों को ट्रिगर करते हैं ... और आखिरकार कुछ दूर चलते हैं। उम्मीद है कि यह मदद करता है।

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