मान लें कि मेरे पास एक प्रोग्राम है जिसे दो अलग-अलग तरीकों से कुछ डेटा का प्रतिनिधित्व करना है। अगर मैं इसे दो अलग-अलग व्यू मॉडल्स के जरिए पूरा करना चाहता हूं, तो यह ऐसा लगता है कि उन्हें मॉडल ऑब्जेक्ट का एक ही उदाहरण साझा करना चाहिए। तो यह आम तौर पर WPF के साथ एमवीवीएम में कैसे पूरा किया जाता है?मॉडल मॉडल आमतौर पर व्यूमोडेल ऑब्जेक्ट्स के बीच कैसे साझा किया जाता है?
एक तरह से मैं के बारे में सोच सकते हैं कि ViewModel कंस्ट्रक्टर्स उचित मॉडल की एक उदाहरण ले सकता है और सभी तारों Application.Startup घटना के लिए कोई हैंडलर में किया जा सकता है। मुझे यह याद नहीं है कि में से किसी भी उदाहरण में मैंने जो उदाहरण देखा है, लेकिन मैंने इसे अभी याद किया होगा।
अब तक यह समय की सबसे की तरह लगता है, उदाहरण सिर्फ ViewModels दिखाने मॉडल वर्गों खुद को, जो कुछ मामलों में काम कर सकता था, लेकिन मेरी स्थिति के लिए एक अच्छा समाधान की तरह प्रतीत नहीं होता की बनाने उदाहरणों, के बाद से प्रत्येक व्यूमोडेल मॉडल कक्षाओं के अपने उदाहरण बनायेगा। यह भी लगता है जैसे मॉडल को के साथ मॉडल को बदलने की संभावना को खत्म कर दिया जाएगा, जो यूनिट परीक्षण के मामले में वांछित हो सकता है। मैं अनुमान लगा रहा हूं कि एक निर्भरता इंजेक्शन ढांचे या आईओसी कंटेनर को उस समस्या को खत्म कर देगा? मैंने अभी तक मैन्युअल निर्भरता इंजेक्शन का उपयोग किया है।
अन्य उदाहरण में, यह, लग रहा था जैसे दृश्य बनाया मॉडल ही वस्तुओं और उन्हें ViewModels, जो इस तरह के एक महान विचार की तरह या तो नहीं लगता है के लिए पारित के बाद से देखें मॉडल के बारे में कुछ भी पता नहीं करना चाहिए ?
कुछ उदाहरण भी मॉडल कक्षाएं, सिर्फ दृश्य और ViewModels के लिए नहीं लग रहे हैं।
तरीके वहाँ बेहतर मैं उल्लेख नहीं किया है कर रहे हैं?
साथ ही, मैं एक निर्भरता इंजेक्शन ढांचे या आईओसी कंटेनर इस्तेमाल करना चाहिए? जैसा कि बताया गया है, मैंने वास्तव में पहले एक का उपयोग नहीं किया है और मैंने सोचा कि यह इस समय काम कर रहे कार्यक्रमों के आकार के लिए ओवरकिल हो सकता है। नहीं होने के कारण वास्तव में किसी भी बहुत भारी में देखा, मैं गलत हो सकता है।
ठीक है, लेकिन यह आम तौर पर कैसे किया जाता है? आमतौर पर कौन सी कक्षा मॉडल ऑब्जेक्ट का उदाहरण बनाती है और इसे उपयुक्त व्यूमोडेल ऑब्जेक्ट्स में पास करती है? यही वह मुख्य बात है जिसे मैं इस समय उलझन में डाल रहा हूं। – foven