2011-02-23 11 views
7

जिस परियोजना पर मैं काम कर रहा हूं वह काफी बड़ा है और हमारे पास एक सरल ढांचा है जो हमने सरल यूआई स्क्रीनों को आसानी से बनाने के लिए विकसित किया है। हमारे पास दो मौलिक प्रकार हैं (खोज पैरामीटर + परिणामों का ग्रिड) और विस्तार (संपादकों का एक सेट जो आमतौर पर कुछ मॉडल ऑब्जेक्ट से पॉप्युलेट होते हैं)।क्या पुराना स्कूल कोडिंग Winforms के लिए मेरा दृष्टिकोण

एप्लिकेशन सभी सी # .NET Winforms है।

विस्तार से हमारे पास निम्न प्रक्रिया है।

  • लोड - उपयुक्त मॉडल ऑब्जेक्ट के आधार पर संपादन नियंत्रणों को पॉप्युलेट करें। लागू सिर्फ विस्तार करने से पहले दिखाया जा रहा

उपयोगकर्ता क्लिक करता है ठीक

  • मान्य - विस्तार सुनिश्चित करने के लिए सब कुछ संगत है मान्यता देता
  • स्वीकार करें - अद्यतन नियंत्रण मूल्यों मॉडल में वापस कॉपी

यह सब साधारण सामान के लिए अच्छी तरह से काम करता है लेकिन अधिक जटिल मामलों में मैंने देखा है कि शायद उपर्युक्त दृष्टिकोण सबसे आसान नहीं है।

ऊपर वर्णित अधिक जटिल मामले तब होते हैं जब एक विवरण एक वस्तु वस्तु का प्रतिनिधित्व करता है और विवरण में एम्बेडेड एक ग्रिड होता है जिसमें 'बच्चे' ऑब्जेक्ट होते हैं जिन्हें जोड़ा और हटाया जा सकता है। आम तौर पर आप बच्चे के विवरण को लॉन्च करना चाहते हैं और मूल मॉडल ऑब्जेक्ट में पास करना चाहते हैं, हालांकि यह इस बिंदु पर पूरी तरह से पॉप्युलेट/अद्यतित नहीं है क्योंकि यह तब होता है जब ठीक क्लिक किया जाता है। मैं खुद को एक परेशान फैशन में इस दौर में काम कर रहा हूं जो कभी-कभी मुझे निम्नलिखित प्रश्नों की ओर ले जाता है।

एक उच्च स्तर पर, विस्तारित स्क्रीन के लिए स्वीकार्य/सर्वोत्तम अभ्यास दृष्टिकोण है जैसे कि जब मैं नियंत्रण बदल जाता हूं, तब तक ऑब्जेक्ट ऑब्जेक्ट में मूल्यों की प्रतिलिपि बनाने का वर्णन करता है, ठीक है जब तक कि ठीक क्लिक नहीं किया जाता है?

यदि ऐसा है, तो Winforms ऐप में, इसे प्राप्त करने का सबसे अच्छा तरीका क्या है? मुझे कुछ लेख Control.DataBindings का उल्लेख करते हैं लेकिन बाध्यकारी पर संकलन-समय सुरक्षा की कमी के कारण यह आदर्श नहीं है। मैंने पढ़ा है कि डब्ल्यूपीएफ के पास अच्छा बाध्यकारी समर्थन है, लेकिन दुर्भाग्यवश, मैं WPF का उपयोग नहीं कर रहा हूं।

उत्तर

0

यह मदद कर सकता है:

पूर्वाभ्यास: DataGridView को नियंत्रित करता है एक मास्टर/विस्तार फार्म दो विंडोज का उपयोग बनाना प्रपत्र

http://msdn.microsoft.com/en-us/library/y8c0cxey.aspx

+0

धन्यवाद लेकिन मुझे यह समझने में अधिक दिलचस्पी है कि मुझे ग्रिड के बारे में चिंता करने से पहले टेक्स्ट बॉक्स और सूची बॉक्स जैसे सरल नियंत्रण को बाध्य करने के बारे में क्या करना चाहिए। –

3

Winforms के लिए मैं सुझाव है कि आप मॉडल-व्यू-प्रस्तुतकर्ता पर गौर पैटर्न। http://msdn.microsoft.com/en-us/magazine/cc188690.aspx

+0

धन्यवाद लेकिन ईमानदार होने के लिए मुझे वास्तव में यह समझ में नहीं आया कि यह कैसे प्रासंगिक था, बाध्यकारी के बारे में कोई स्पष्टीकरण नहीं था या यह कैसे काम करता था और कुछ दृश्य अद्यतन मैन्युअल रूप से किया जा रहा था। ICustomerTask को एक BindTo() कॉल किया गया था लेकिन इंटरफ़ेस या कार्यान्वयन पर कोई विवरण नहीं था। –

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