Предположим, у меня есть класс модели Data
, и я хотел бы создать и DataView
для этого. Класс данных выглядит следующим образом:ObservableCollection в ViewModel не обновляется при изменении списка в модели
public class Data
{
public Data()
{
RandomData = new List<String>();
}
public List<String> RandomData {get; set;}
}
Я хочу создать DataViewModel
, который инкапсулирует RandomData
свойства. Мне нужно связать с этим свойством RandomData
в некотором ListView
и обновить его при изменении базовой модели RandomData
.
Если я это сделать:
public class DataViewModel
{
private Data _data;
public DataViewModel(Data data)
{
_data = data;
RandomData = new ObservableCollection<String>(_data.RandomData);
}
public ObservableCollection<String> RandomData {get; set;}
}
тогда я не получаю никаких обновлений. (Я знаю, что это просто копирование списка, я просто использую его, чтобы получить точку). Если я использовал INotifyPropertyChanged в свойстве RandomData
, я бы получил только уведомления о новых списках, назначенных ему. Как я могу проверить изменение содержимого? Каков предпочтительный способ сделать это?
Спасибо за любые предложения
Да, это пятно. Кажется, у меня нет выбора, кроме как использовать ObservableCollections. –