मैं MSDN की तरह विभिन्न स्रोतों से MVVM पैटर्न के बारे में पढ़ रहा:कौन सिल्वरलाइट MVVM में DataContext सेट है
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
उस लेख में यह कहते हैं: एमवीपी में प्रस्तुतकर्ता के विपरीत, एक ViewModel एक की जरूरत नहीं है एक दृश्य के संदर्भ में।
देखें (XAML) मान लिया गया यह DataContext तो ViewModel वह जगह है जहाँ कोड में निम्न पंक्ति है बताया गया है:
view.DataContext = viewModel;
ViewModel दृश्य के बारे में कुछ भी पता नहीं है तो यह DataContext निर्धारित नहीं कर सकते। यदि मैं व्यूमोडेल को संदर्भ देता हूं तो क्या मैं एमवीवीएम पैटर्न तोड़ता हूं? मेरी दूसरी पसंद किसी प्रकार का बिल्डर या अतिरिक्त प्रेजेंटर होना है जिसका एकमात्र काम पूरी चीज को तार करना है (दृश्य की लोड की गई घटना के लिए प्रतीक्षा करें, डेटाकेंटेक्स्ट सेट करें)।
मुझे पता है कि अलग-अलग दृश्य एक ही डेटाकॉन्टेक्स्ट साझा कर सकते हैं (उदा। केवल मेनविंडो के लिए डेटा कॉन्टेक्स्ट सेट करें और अन्य इसे देखेंगे) लेकिन कई मामलों में यह संभव नहीं है और यहां तक कि व्यवहार्य भी नहीं है।