मेरे पास एक (बाहरी) मॉडल है जो एक सूची को उजागर करता है जो लगातार बदलता है (चलिए हर दो सेकंड या तो कहते हैं)। एक व्यू मॉडेल जानता है कि PropertyChange घटनाओं के लिए पंजीकरण सूची। वह व्यूमोडेल डेटा बाइंडिंग के लिए यूआई को एक ऑब्जर्जेबल कोलेक्शन भी प्रदान करता है।व्यू मॉडेल के एक पर्यवेक्षण सूची में मॉडल की बदलती सूची को सिंक्रनाइज़ करने के लिए सर्वोत्तम अभ्यास?
+-----------------------------------------------+
| View|
| +-----------+ |
| |Listbox | |
| +-----------+ |
+-----/\----------------------------------------+
||
||DataBinding
||
||
+-----||----------------------------------------+
| || ViewModel|
| +--------------------+ +-------------+|
| |ObservableCollection|<--------|ChangeHandler||
| +--------------------+ / +-------------+|
| / ^ |
+-------------------------/------------|--------+
/ |
/ |
Synchronizing Lists | PropertyChanged
|
|
+--------------------------------------|--------+
| +-----+ Model|
| |IList| |
| +-----+ |
| |
+-----------------------------------------------+
सिद्धांत रूप में जो लगातार काम करता है, इसके अलावा लगातार अद्यतन किए जाते हैं। प्रत्येक अपडेट के साथ उपयोगकर्ता अपना चयन खो देता है, यानी सभी वस्तुओं को हर अपडेट के साथ अचयनित किया जाएगा। यह कोई आश्चर्य की बात नहीं है, क्योंकि डब्ल्यूपीएफ के लिस्टबॉक्स "देखता है" कि एक नई सूची असाइन की गई थी।
तो, बात होना चाहिए कि हम ऐसा नहीं एक नया ObservableCollection आवंटित है, लेकिन अद्यतन Model.List
अब के साथ वर्तमान ObservableCollection की सामग्री के विलय मेरे सवालों
- सिंक्रनाइज़ किया जा रहा सूचियाँ - क्या इस तरह के विलय (ऑब्जेर्जेबल कोलेक्शन में नए आइटम कॉपी करें, गुमशुदा वस्तुओं को अपडेट करना, बदली हुई वस्तुओं को अपडेट करना) पर सर्वोत्तम प्रथाएं (या ढांचे) हैं
- चयनित आइटम - मैं कैसे आश्वस्त कर सकता हूं ListBox वर्तमान में चयनित आइटम रखता है (उस मामले के अलावा जिस आइटम को हटा दिया गया था)
+1 अच्छा आरेख =] –
धन्यवाद। मैं एक बहुत ही दृश्यमान व्यक्ति हूं और कुछ चित्रों की आवश्यकता है। Jave5 – Seven