我的ObservableCollection遇到了一些奇怪的问题。我使用的是.Net 4.0。
我有一个像这样的viewmodel:
PoViewModel : DataViewModelBase
{
public ObservableCollection<PoDetail> PoDetails { <omitting dp boiler code for ease> }
public void Add()
{
this.PoDetails.Add(new PoDetail()); //<-- this is not getting detected in the wpf UI
}
}
DataViewModelBase是DependencyObject
我有一些测试代码可以验证没有发生任何事情:
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
this.IsDirty = true;
MessageBox.Show(e.Property.Name + " just changed");
}
可能是什么问题?我假设我不明白ObservableCollections是如何工作的,但从我读过的所有内容来看,这应该可以正常工作。
答案 0 :(得分:1)
为什么在viewModel上需要依赖属性?
简单地实施INotifyPropertyChanged
就足够了。
此外,在向ObservableCollection
添加元素时,您不希望更新名称“PoDetails”的属性。您应该期望引发CollectionChanged
实例的ObservableCollection
事件。