के बीच मध्यस्थता संचार मैं दृश्य मॉडल के लिए मॉडल डेटा में परिवर्तन संवाद स्थापित करने के लिए विभिन्न दृष्टिकोण पढ़ा है। कुछ सुझाव है कि मॉडल INotifyPropertyChanged को लागू करना चाहिए जहां संभव हो, इतना है कि यह बदल गुण को देखते मॉडल सूचित कर सकते हैं। कुछ मॉडल और देखने मॉडल के बीच एक सेवा परत सुझाव है, सेवा परत INPC को लागू करने के साथ, विधि ताकि सेवा परत दृश्य मॉडल को सूचित करता है मॉडल के लिए इस सेवा परत के माध्यम से आने कॉल।WPF MVVM: INPC और देखने मॉडल और मॉडल
मैं बाद वाले को पूर्व के अधिक बारीक संशोधन के रूप में मानता हूं और अपने मॉडल वर्गों में आईएनपीसी लागू करना शुरू कर देता हूं। यह गलत लगता है क्योंकि
ए) अब मुझे मॉडल से अधिसूचनाओं के लिए मेरे दृश्य मॉडल में एक ईवेंट हैंडलर लिखना है। यह एक लंबे स्विच (प्रॉपर्टी), जो के कारण एनपीसी ऊपर की तरफ फिर से भेजे जाने के लिए देखने के मॉडल पर इसी संपत्ति (रों) सेट का रूप ले लेता। मुझे लगता है कि मैं यहां बहुत सारे बॉयलर प्लेट कोड लिख रहा हूं।
बी) देखें मॉडल अब मेरे मॉडल के साथ स्ट्रिंग्स के समूह के माध्यम से जुड़ा हुआ है जो पूरी तरह से कॉन्फ़्रेंस द्वारा विनियमित होते हैं I.e no 'इंटरफ़ेस' परिभाषित नहीं किया जाता है। आईडीई का कारण बनने में कठिनाई का जिक्र नहीं है।
सी) इस मॉडल को समायोजित करने के लिए मेरे मॉडल को संशोधित किया जाना है! क्या होगा यदि यह किसी कारण से बंद था? मैंने सोचा था कि इस तरह के पैटर्न कोड पुन: प्रयोज्यता & चिंताओं का पृथक्करण बढ़ाने के लिए डिज़ाइन किए गए थे। इतना ही नहीं, लेकिन आईएनपीसी घटनाओं को आग लगाने के लिए आवश्यक कोड कठिन और दोहरावदार है और वास्तव में अमूर्त नहीं है।
मैं वास्तव में जानना चाहता हूं कि डब्ल्यूपीएफ पेशेवर इस समस्या से कैसे निर्भर करते हैं चाहे निर्भरता गुण आदि। मुझे लगता है कि मुझे कुछ याद आ रहा है। मैं 'ढांचे से' सीखना चाहूंगा जैसे ढांचे का उपयोग करने के लिए उत्सुक नहीं हूं। मैं WPF से दूर एक या दो साल और AngularJS के साथ काम कर हाल ही में मुझे मेरे तरीकों यहाँ सवाल बना दिया है के लिए किया गया है।
धन्यवाद!
जब आप 'मॉडल' कहें तो आप वास्तव में क्या कह रहे हैं? क्या आपका मतलब व्यवसाय वस्तुओं/डेटा प्रकार वर्ग, कोड जो डेटा स्रोत से जुड़ता है, या दोनों? – Sheridan
मैं व्यवसाय डेटा और कार्यक्षमता का जिक्र कर रहा हूं। इस मामले में मेरे मॉडल वर्ग "टेस्ट" ("विवरण", "परिणाम" जैसे गुण, "रन" जैसे विधियां) और "टेस्टप्लेन" वीएम के साथ "टेस्टप्लेमोडेल" "टेस्टप्लान व्यू मॉडेल" हैं। –
आपको अपने मॉडल के लिए आईएनपीसी की आवश्यकता नहीं है, केवल आपका व्यू मॉडल। यह आपके वीएम का पूरा बिंदु है - मैंने देखा है कि लोग अपने मॉडल में आईएनपीसी डालते हैं लेकिन यह मुझे मॉडल के बजाए इसे एक आदर्श मॉडल बनाने के रूप में मारता है। –