调用add时,ObservableCollection依赖项属性不会更新

时间:2013-09-20 16:03:20

标签: c# wpf observablecollection

我的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是如何工作的,但从我读过的所有内容来看,这应该可以正常工作。

1 个答案:

答案 0 :(得分:1)

为什么在viewModel上需要依赖属性?

简单地实施INotifyPropertyChanged就足够了。

此外,在向ObservableCollection添加元素时,您不希望更新名称“PoDetails”的属性。您应该期望引发CollectionChanged实例的ObservableCollection事件。