Я в недоумении, почему это не работает, учитывая, что я получил его из рабочего кода, просто добавил новый уровень кода, но вот что у меня есть. По сути, когда я связываю ViewModel со списком, привязка срабатывает, когда элементы добавляются в коллекцию. Однако, если происходит обновление элемента, который связан, он не обновляется. По сути, у меня есть ObservableCollection, которая содержит пользовательский класс со строковым значением. Когда это строковое значение обновляется, мне нужно обновить список.
Прямо сейчас, когда я отлаживаю, элемент списка обновляется правильно, но пользовательский интерфейс не отражает изменения. Если я установлю привязанный элемент к переменной-члену и обнулю его, то верну его в нужную коллекцию, это будет работать, но не желаемое поведение.
Вот макет кода, надеюсь, кто-нибудь подскажет, где я не прав. Кроме того, я попытался реализовать INofityPropertyChanged на каждом уровне в коде ниже.
public class Class1
{
public string ItemName;
}
public class Class2
{
private Class2 _items;
private Class2() //Singleton
{
_items = new ObservableCollection<Class1>();
}
public ObservableCollection<Class1> Items
{
get { return _items; }
internal set
{
_items = value;
}
}
}
public class Class3
{
private Class2 _Class2Instnace;
private Class3()
{
_Class2Instnace = Class2.Instance;
}
public ObservableCollection<Class1> Items2
{
get {return _Class2Instnace.Items; }
}
}
public class MyViewModel : INofityPropertyChanged
{
private Class3 _myClass3;
private MyViewModel()
{
_myClass3 = new Class3();
}
private BindingItems
{
get { return _myClass3.Items2; } // Binds when adding items but not when a Class1.ItemName gets updated.
}
}