Я часами сталкивался с этой проблемой и не могу понять, почему это происходит:
У меня есть ObservableCollection
внутри модели моего вида.Со следующим кодом все работает нормально:
class ExcelViewModel
{
public ObservableCollection<EPCInformation> EPCEntries { get; set; }
public ExcelViewModel()
{
EPCEntries = new ObservableCollection<EPCInformation>();
}
void AddEntry()
{
EPCEntries.Add(new EPCInformation
{
HexEPC = "TEST"
});
}
}
Но если я не инициализирую EPCEntries
при построении, а просто устанавливаю его на ObservableCollection
, созданный позже, мой пользовательский интерфейс не обновляется:
class ExcelViewModel
{
public ObservableCollection<EPCInformation> EPCEntries { get; set; }
public ExcelViewModel()
{
}
void AddEntry()
{
ObservableCollection<EPCInformation> tmp = new ObservableCollection<EPCInformation>();
tmp.Add(new EPCInformation
{
HexEPC = "TEST"
});
EPCEntries = tmp;
}
}
AddEntry()
вызывается по нажатию кнопки в обоих случаях.
Я новичок в WPF и C #, но я думал, что во втором случае возникает другой тип события ипоэтому пользовательский интерфейс не обновляется.Хотя я не мог понять это.
Чего мне не хватает?