मैं बस एमवीवीएम से शुरू कर रहा हूं और एक बाधा उत्पन्न कर दी है जो मुझे उम्मीद है कि कोई मेरी मदद कर सकता है। मैं 2 सूची बॉक्स के साथ एक साधारण दृश्य बनाने की कोशिश कर रहा हूं। पहले सूची बॉक्स का चयन दूसरे सूची बॉक्स को पॉप्युलेट करेगा। मेरे पास एक वर्ग बनाया गया है जो उस जानकारी को संग्रहीत करता है जिसे मैं बांधना चाहता हूं।अवलोकन करने योग्य चयन अद्यतन नहीं कर रहा है
MyObject कक्षा
public class MyObject : ObservableObject
{
String _name = String.Empty;
ObservableCollection<MyObject> _subcategories;
public ObservableCollection<MyObject> SubCategories
{
get { return _subcategories; }
set
{
_subcategories = value;
RaisePropertyChanged("SubCategories");
}
}
public String Name
{
get { return _name; }
set
{
_name = value;
RaisePropertyChanged("Name");
}
}
public MyObject()
{
_subcategories = new ObservableCollection<EMSMenuItem>();
}
}
मेरी viewmodel में (प्रत्यक्ष वस्तु सिर्फ एक आधार वर्ग कि INotifyPopertyChanged लागू करता है) मैं मैं दो ObservableCollections बनाया
public ObservableCollection<EMSMenuItem> Level1MenuItems { get; set; }
public ObservableCollection<EMSMenuItem> Level2MenuItems { get; set; }
ViewModel की मेरी निर्माता में है:
this.Level1MenuItems = new ObservableCollection<EMSMenuItem>();
this.Level2MenuItems = new ObservableCollection<EMSMenuItem>();
this.Level1MenuItems = LoadEMSMenuItems("Sample.Xml");
यह स्तर 1 वस्तुओं के लिए ठीक काम करता है और वे दृश्य में सही ढंग से दिखाते हैं। हालांकि मैं एक कमांड उपयोगकर्ता लिस्टबॉक्स में एक आइटम क्लिक करता है, जो निम्नलिखित कहा जाता हो जाता है कि राशि: किसी कारण से
Level2MenuItems = ClickedItem.SubCategories;
इस दूसरे लिस्टबॉक्स के यूआई अपडेट नहीं होता। अगर मैं इस स्थान पर ब्रेकपॉइंट डालता हूं तो मैं देख सकता हूं कि Level2MenuItems में इसमें सही जानकारी है। यदि मैं फ़ोरैच लूप लिखता हूं और उन्हें Level2MenuItems संग्रह में अलग-अलग जोड़ता हूं तो यह सही तरीके से प्रदर्शित होता है।
Level2MenuItems = Level1MenuItems[0].SubCategories;
और वह सही ढंग से अपडेट:
इसके अलावा एक परीक्षण के रूप में मैं निर्माता के लिए निम्न गयी।
तो कोड कन्स्ट्रक्टर में अपेक्षित क्यों काम करेगा, या जब लूपिंग हो रहा है, लेकिन जब कोई उपयोगकर्ता सूची बॉक्स में किसी आइटम पर क्लिक नहीं करता है?
धन्यवाद। वास्तव में मुझे क्या चाहिए। –