मैं एमवीवीएम पैटर्न सीखने की कोशिश कर रहा हूं। मेरी मुख्य समस्या यह है कि मुझे सीखना चाहिए कि मुझे कहां घोषित किया जाना चाहिए, कमांड ऑब्जेक्ट्स बनाना और बाध्य करना चाहिए।एमवीवीएम कमांड बाइंडिंग
2 उदाहरण:
मैं एक मुख्य रूप है कि एक स्विच बोर्ड या मुख्य मेनू की तरह काम करता है। सेल्ट बटन 1 और व्यू 1 प्रदर्शित होता है, बटन 2 का चयन करें और देखें 2 प्रदर्शित होता है। महान। अब मैं मुख्य रूप में वापस जाना चाहता हूं इसलिए मुझे "मुख्य मेनू" नामक व्यू 1 (और देखें 2) पर एक बटन चाहिए। मुझे कमांड और कमांड हैंडलर को कहां परिभाषित करना चाहिए ताकि मैं "ShowMainMenu" कमांड से जुड़ सकूं? मैं उन्हें View2ViewModel में बना सकता हूं लेकिन तब मुझे मुख्य दृश्य दिखाने के लिए उपयोग नहीं है? या, मैं मेनव्यू मॉडल में थिम बना सकता हूं लेकिन फिर मैं उन्हें बच्चों के दृश्य मॉडल में कैसे बांधूं (मैं एमवीवीएम सिफारिश के अनुसार रिलेकॉमैंड ओबेजेक्ट का उपयोग कर रहा हूं और वे माता-पिता को बुलबुला नहीं करते हैं।)
मेरे पास एक मुख्य विंडो दृश्य पर दिखाई देने वाले दो उपयोगकर्ता नियंत्रण हैं, चलिए उन्हें मेनव्यू, यूसी 1 और यूसी 2 कहते हैं। इनमें से प्रत्येक में ViewModel MainViewModel, UC1ViewModel, UC2View मॉडल है। मेरे पास "AddItem" नामक यूसी 1 पर एक बटन है। इसे यूसी 2 पर एक सूची में एक आइटम जोड़ना चाहिए। "AddItemCommand" सेट करने और इसे बांधने का सही तरीका क्या है। क्या कमांड MainViewModel, Uc1ViewModel या UC2ViewModel में होना चाहिए? और मैं कितना जोर से बांधता हूं।
आपकी सहायता के लिए धन्यवाद।
पहले उदाहरण के में आप सेट ViewContent = नए MainViewModel()); क्या यह एक विंडो/उपयोगकर्ता नियंत्रण होना चाहिए? या क्या आप वास्तव में वर्तमान सामग्री को एक दृश्य मॉडल में सेट करते हैं? – thrag
यह मॉडल देखें। यदि आप अपने विचार में ContentPresenter रखते हैं और ViewModel पर सामग्री प्रॉपर्टी को बाध्य करते हैं तो इसे संबंधित दृश्य के रूप में दिखाया जाएगा। क्या आप इस तरह व्यू-व्यूमोडेल एसोसिएशन का उपयोग करते हैं: <देखें: मुख्य दृश्य /> DataTemplate> –
bniwredyc