पर फॉर्म .ShowDialog() कोड को रिफैक्टरिंग मेरे पास WinForm और कुछ गुण हैं जो इस पर सेट हैं।
उदाहरण के लिए: नाम, पता फॉर्म पर स्वीकार किया जाता है।
(वास्तविक उदाहरण में कई और अधिक गुण)एमवीपी
वर्तमान कार्यान्वयन कुछ हद तक
frmName frmView = new frmName(); //frmName is WINFORM
frmView.Name= "ABC"; //any valid string or read this from file
frmView.Address="SomeAddress"; //any valid address or read this from file
if (frmView.ShowDialog() == DialogResult.OK)
{
//OK CLICK PROCESS and
// get new values edited by user
string name = frmView .Name;
string address = frmView.Address;
doProcessing(name,address);
}
else{
//Ignore cancel click..
}
के समान है मैं कैसे एक MVP आधारित Winform आवेदन में कनवर्ट कर सकते हैं।
इसके अलावा refactor करने के लिए प्रसंस्करण प्रस्तुतकर्ता/मॉडल
करने पर ShowDialog() किया (पता वह जगह है जहाँ यह करने के लिए) की आवश्यकता है?
भी फॉर्म पर कोड लिखने से बचने की आवश्यकता है। (निष्क्रिय दृश्य)
धन्यवाद सब।
thx। कृपया आप त्रुटियों के भाग को संभालने की व्याख्या भी कर सकते हैं .. (तीसरा अनुच्छेद .. "कुछ परिस्थितियों में जहां ....") – Amitd
@Amitd: मेरे उत्तर में कोड उदाहरण में, उपयोगकर्ता अनुरोध प्रस्तुतकर्ता को भेजा जाता है * बंद * संवाद बॉक्स पर। क्या होगा अगर उस अनुरोध के परिणामस्वरूप त्रुटि हो? उदाहरण के लिए, वही नाम और पता पहले से ही संसाधित और सहेजा जा चुका है। यह संवाद बॉक्स के भीतर से त्रुटि प्रदर्शित करने के लिए बेहतर लग रहा है और फिर से प्रयास करने के लिए * नया * संवाद बॉक्स खोलने के बजाय उपयोगकर्ता को अपना नाम या पता बदलने की अनुमति देता है। आप प्रेजेंटर को डायलॉग बॉक्स में पास करके, इसे स्वयं अनुरोध करने के द्वारा कर सकते हैं, और केवल इसे बंद कर सकते हैं यदि यह * त्रुटि नहीं होता है। – Rich
@Rich: ओह ठीक है। तो मुझे दृश्य के अंदर नए प्रस्तुतकर्ता बनाने के बजाय प्रस्तुतकर्ता को दृश्य की संपत्ति के रूप में रखने की आवश्यकता होगी? – Amitd