या लेखात, MVVM पद्धतीचा वापर करून Silverlight मध्ये संवाद प्रदर्शित करण्याचे सर्वोत्तम मार्ग समजावले आहेत.
पणजी, भारत १२ जुलै, २०२६ ALN: या लेखात खालील तंत्रज्ञानांचा समावेश आहे: C#, PRISM 4, Silverlight 4
प्रत्यक्ष उदाहरण पाहण्यासाठी येथे क्लिक करा
जे प्रोग्रामर MVVM वापरत नाहीत त्यांच्यासाठी वापरकर्त्यास संवाद प्रदर्शित करण्याचे सोपे आणि प्रभावी मार्ग आहेत (संदेश बॉक्स संवाद, पुष्टीकरण संवाद, कस्टम संवाद). परंतु MVVM सह संवाद प्रदर्शित करण्याचा सर्वोत्तम मार्ग कोणता आहे? दुसऱ्या शब्दांत: आपण UI कडे दुर्लक्ष न करता दृश्य-मॉडेलमधून संवाद कसा ट्रिगर करू शकता?
हे कसे करायचे नाही:
MessageBox.Show("हे संदेश आहे", "हे शीर्षक आहे",MessageBoxButton.OK); वरील कोडचा समस्या म्हणजे नियमित MessageBox c# प्रकार UI दृश्य ठरवतो आणि दृश्याद्वारे बदलला जाऊ शकत नाही. हे नेहमी एक ब्लॉकिंग पॉपअप दर्शवेल. विकासक संवादाचे दृश्य कस्टमाइझ करू शकत नाही, असिंक्रोनस बनवू शकत नाही किंवा युनिट चाचणीच्या परिस्थितींसाठी ते अनुकरण करू शकत नाही. योग्य कोडिंगसाठी तुम्हाला संवादाचे दृश्य व्यवसाय तत्त्वज्ञानापासून वेगळे करणे आवश्यक आहे.
सोप्या भाषेत, मी लेखात दर्शविलेल्या कोड नमुन्यात 'PropertyChanged' इव्हेंटला ट्रिगर केले नाही. संपूर्ण कोड मिळवण्यासाठी कृपया डेमो पहा.
या लेखात वापरलेला डेमो तुम्ही खालील लिंकवरून डाउनलोड करू शकता.
हा लेख खालील मुद्द्यांवर आधारित आहे:
कुठलाही संवाद प्रदर्शित करण्यापूर्वी तुम्हाला खालील गोष्टी करणे आवश्यक आहे.
p.1 जर तुम्ही हे आधी केले नसेल, तर PRISM 4 डाउनलोड करा.
p.2 तुम्ही संवाद लागू करणार असलेल्या Silverlight प्रकल्पात खालील संदर्भ जोडा.
खालील विभाग वापरकर्त्यास साधा संदेश बॉक्स संवाद कसा प्रदर्शित करायचा हे दर्शवेल.
संवाद प्रदर्शित करण्यासाठी तुम्ही ‘InteractionRequest<Notification>’ प्रकार वापराल. हा प्रकार दृश्य-मॉडेल आणि दृश्यादरम्यान प्रॉक्सी म्हणून वापरला जाईल आणि संवादाबद्दल माहिती समाविष्ट करेल जसे की शीर्षक आणि संदेश.
कोडिंग नियम
s1.1 कोडिंग नियमांचे पालन करण्यासाठी तुमच्या वर्गाचे नाव खालील पद्धतीचा वापर करून ठरवा ‘{View model name}ViewModel’, उदाहरणार्थ – ‘UsersViewModel’.
संवादाचे प्रतिनिधित्व करणारी संपत्ती उघडणे
s1.2 ‘InteractionRequest<Notification>’ प्रकाराची संपत्ती उघडा. नंतर तुम्ही UI पॉपअप संवादाला या संपत्तीवर बाइंड कराल. खालील कोड नमुना वापरा:
public InteractionRequest<Notification> ShowMessagebox { get; set; }
जिथे:
s1.3 दृश्य-मॉडेल कन्स्ट्रक्टरमध्ये, संपत्तीला एक ठोस उदाहरणासह प्रारंभ करा. खालील कोड नमुना वापरा:
ShowMessagebox = new InteractionRequest<Notification>;
जेव्हा आवश्यक असेल तेव्हा संवाद प्रदर्शित करणे
s1.4 शेवटी, वापरकर्त्यास संवाद प्रदर्शित करण्यासाठी खालील कोड नमुना वापरा:
ShowMessagebox.Raise(new Notification { Content = "हा संदेश बॉक्स दृश्य-मॉडेलमधून ट्रिगर झाला", Title = "सुंदर शीर्षक" }, arg =>
{
// वैकल्पिक - वापरकर्त्याने संदेश बॉक्स स्वीकारल्यानंतर काहीतरी करा
}); जिथे:
तुम्ही दृश्य-मॉडेलमध्ये बदल करणे संपवले आहे, परंतु तुम्हाला कोड चाचणी करण्यासाठी दृश्यामध्ये बदल करणे आवश्यक आहे.
या भागात तुम्ही दृश्य-मॉडेलमध्ये जोडलेल्या संपत्तीला बाइंड करून संवादाचे दृश्य भाग जोडणार आहात.
कोडिंग नियम
s1.5 कोडिंग नियमांचे पालन करण्यासाठी तुमच्या वर्गाचे नाव खालील पद्धतीचा वापर करून ठरवा ‘{View name}View’, उदाहरणार्थ – ‘UsersView’.
आवश्यक नामस्थान जोडा
s1.6 XAML मध्ये खालील नामस्थान जोडा:
xmlns:ei=""
xmlns:prism=""
InteractionRequestTrigger वर्तन जोडा
s1.7 ‘InteractionRequestTrigger’ दृश्य-मॉडेल उघडलेल्या संपत्ती आणि दृश्यातील दृश्य घटक यांच्यात बाइंड करण्यासाठी वापरला जातो.
खालील कोड नमुना वापरा, तो ग्रिड घटक ‘LayoutRoot’ च्या पहिल्या चाइल्ड म्हणून जोडा:
<ei:Interaction.Triggers>
<prism:InteractionRequestTrigger SourceObject="{Binding ShowMessagebox}">
<prism:PopupChildWindowAction/>
</prism:InteractionRequestTrigger>
</ei:Interaction.Triggers>
जिथे:
तुम्ही PRISM मार्गदर्शक तत्त्वे आणि MVVM तत्त्वज्ञानाचा वापर करून संदेश बॉक्स संवाद कार्यान्वित करणे पूर्ण केले आहे.
पुष्टीकरण संवाद प्रदर्शित करणे संदेश बॉक्स प्रदर्शित करण्याच्या कार्यान्वयनासारखेच आहे. या विभागात मी फरकांवर लक्ष केंद्रित करेन त्यामुळे तुम्हाला पुढे जाण्यापूर्वी अध्याय 1 वाचावा लागेल.
संवादाचे प्रतिनिधित्व करणारी संपत्ती उघडणे
s2.1 ‘InteractionRequest<Confirmation>’ प्रकाराची संपत्ती उघडा. लक्षात ठेवा की सामान्य प्रकार ‘Confirmation’ आहे आणि ‘Notification’ नाही. खालील कोड नमुना वापरा:
public InteractionRequest<Confirmation> ShowConfirmation { get; set; }
s2.2 कन्स्ट्रक्टरमध्ये, संपत्तीला ठोस उदाहरणासह प्रारंभ करा. खालील कोड नमुना वापरा:
ShowConfirmation = new InteractionRequest<Confirmation>;
जेव्हा आवश्यक असेल तेव्हा संवाद प्रदर्शित करणे
s2.3 वापरकर्त्यास संवाद प्रदर्शित करण्यासाठी खालील कोड नमुना वापरा:
ShowConfirmation.Raise(new Confirmation { Content = "हा पुष्टीकरण संवाद दृश्य-मॉडेलमधून ट्रिगर झाला. तुम्ही स्वीकारता का?", Title = "पुष्टीकरण शीर्षक" }, confirmation =>
{
if (confirmation.Confirmed)
{
// वापरकर्त्याने विनंती स्वीकारली (‘ok’ बटणावर क्लिक केले)
}
else
{
// वापरकर्त्याने विनंती नाकारली (‘cancel’ बटणावर क्लिक केले)
}
}); हा भाग अध्याय 1 मधील संबंधित भागासारखा आहे. एकमेव फरक म्हणजे ‘SourceObject’ बाइंड केलेल्या संपत्तीचे नाव.
आवश्यक नामस्थान जोडा
s2.4 XAML मध्ये खालील नामस्थान जोडा:
xmlns:ei=""
xmlns:prism=""
InteractionRequestTrigger वर्तन जोडा
s2.5 खालील कोड नमुना वापरा, तो ग्रिड घटक ‘LayoutRoot’ च्या पहिल्या चाइल्ड म्हणून जोडा:
<ei:Interaction.Triggers>
<prism:InteractionRequestTrigger SourceObject="{Binding ShowConfirmation}">
<prism:PopupChildWindowAction/>
</prism:InteractionRequestTrigger>
</ei:Interaction.Triggers>
या लेखात मी सामान्य संवाद जसे की संदेश बॉक्स आणि पुष्टीकरण कसे प्रदर्शित करायचे हे दर्शवले. पुढील लेखात मी कस्टम संवाद प्रदर्शित करणे आणि शैली बदलणे यासारख्या अधिक प्रगत वापरावर लक्ष केंद्रित करेन. तुम्ही लेखाच्या सुरुवातीला प्रकल्प डाउनलोड करू शकता.
प्रत्यक्ष उदाहरण पाहण्यासाठी येथे क्लिक करा
To learn more about the latest developments in Software & Platforms, stay updated with our exclusive reports and analyses on AiLensNews.