मान लीजिए मेरे पास दो ViewModels हैं और दोनों उपयोग कर रहे हैंसमान मॉडल वर्ग। यदि कोई ViewModel मॉडल वर्ग में कुछ संपत्ति मूल्य को बदलता है, तो मैं उसी को दूसरे ViewModel को सूचित करना चाहता हूं, ताकि मैं इसे फिर से ताज़ा किए बिना दृश्य में परिवर्तन दिखा सकूं।
Model<-------->ViewModel 1
^
|------------>ViewModel 2
कृपया मेरी मदद करें, एमवीवीएम पैटर्न का उपयोग करके इसे कैसे लागू करें (मॉडल <---> ViewModel (एस) टू-वे बाइंडिंग)? और अगर कोई और तरीका है जो अधिक संभव है, तो बहुत धन्यवाद होगा।
उत्तर:
उत्तर № 1 के लिए 1मुझे लगता है कि आपने गलत समझा Model<--->ViewModel(s) Two-Way binding
, वास्तव में बाध्यकारी स्रोत कम से कम मॉडल का एक उदाहरण होना चाहिए, DataContext
ViewModel होना चाहिए जिसमें मॉडल का यह उदाहरण है, हम मॉडल को सीधे बाध्यकारी लक्ष्य के लिए बांध नहीं सकते हैं।
मुझे लगता है कि जब आपको डेटा की आवश्यकता होती है तो आप क्या चाहते हैंViewModel1 में बदल गया है, अन्य ViewModels इसे अधिसूचित और प्रतिक्रिया दे सकता है, और आपने यह काम मैन्युअल रूप से ताज़ा करके किया होगा और आप दूसरा तरीका खोजना चाहते हैं।
एमवीवीएम पैटर्न में ऐसा करने का एक आसान तरीका है, आप मैसेंजर ऑफ का उपयोग कर सकते हैं एमवीवीएम लाइट, आप एसओ पर इस प्रश्न का उल्लेख कर सकते हैं: देखने के मॉडल के बीच मान पारित करने के लिए MVVM लाइट के मैसेंजर का उपयोग करें.