2010-08-06 6 views
26

एमवीवीएम पैटर्न में, दृश्य मॉडल के सभी गुणों को कैसे सूचित किया जाए? मैं सभी गुणों की सभी अधिसूचनाप्रभावित घटनाओं को कॉल नहीं करना चाहता हूं।दृश्य मॉडल के सभी गुणों को कैसे सूचित किया गया है

मेरे पास एक इकाई वर्ग है और मॉडल में मैंने सार्वजनिक संपत्ति के रूप में इकाई के सभी सार्वजनिक क्षेत्रों को लिखा है। मैं नई इकाई को पुनर्जीवित करना चाहता हूं और यह सूचित करने के लिए कोड की एक पंक्ति लिखना चाहता हूं कि सभी गुण बदल गए हैं?

आपकी मदद के लिए धन्यवाद।

+0

+1 आज मुझे कुछ सिखाए जाने के लिए +1। – Gishu

उत्तर

45

बस संपत्ति नाम के रूप में एक खाली स्ट्रिंग के साथ PropertyChanged ईवेंट उत्पन्न:

OnPropertyChanged(String.Empty); 
+2

हां, प्रॉपर्टी चेंजेड ईवेंट को शून्य या खाली स्ट्रिंग के साथ फायर करना चाल है। –

+0

हाय थॉमस, क्या यह यूवीपी समाधानों के लिए भी लागू है? मैं कुछ परियोजनाओं में देखता हूं कि यह विंडोज 8.1 या यूनिवर्सल विंडोज प्लेटफ़ॉर्म ऐप्स में अच्छी तरह से काम नहीं कर रहा है। सबको धन्यवाद! – soydachi

+0

@ डचिबॉक्स, मैंने कभी यूडब्ल्यूपी का उपयोग नहीं किया है, इसलिए मुझे नहीं पता ... लेकिन मैं इसे भी काम करने की उम्मीद करता हूं। –

0

ठीक है मैं क्या समझ में आ से अपने प्रश्न यह है ..

View <> ViewModel <> Entity (with a bunch of properties)

देखें ViewModel के लिए बाध्य है , जो इकाई को प्रतिनिधि करता है। अब आप बैकिंग इकाई को प्रतिस्थापित करना चाहते हैं और नई इकाई को अपडेट करने के लिए रीफ्रेश करने के लिए दृश्य को सिग्नल करना चाहते हैं।

मैं को व्यूमोडेल में एक इंडेक्सर लागू करने का सुझाव देता हूं जो एक स्ट्रिंग (बैकिंग प्रॉपर्टी का नाम) लेता है। यदि आवश्यक हो तो ViewModel को कैश के रूप में उपयोग किया जा सकता है, केवल मिस पर बैकिंग इकाई को प्रस्तुत करना।

जब आप इकाई को प्रतिस्थापित करते हैं, तो दृश्य मॉडल अपने कैश को साफ़ करता है और स्ट्रिंग के साथ नोटिफ़ाईप्रॉपर्टी (इंडेक्सर सेट में) आग लगाता है। लक्षण या शून्य। जो मैंने आज सीखा, indicates all properties have changed

इस तरह आप ViewModel में n प्रतिनिधि गुण नहीं बनाते हैं। एक google search result दिखाता है कि सफलता के साथ कम से कम एक बार कोशिश की गई है।

संबंधित मुद्दे

 संबंधित मुद्दे