ObservableCollection中的项目替换不会更新WPF ItemsControl

时间:2011-02-13 16:36:16

标签: wpf binding observablecollection

我(我认为)是一个相当传统的WPF应用程序。

我已经

<ListBox ItemsSource="{Binding MyList}" ...

MyList是

ObservableCollection<MyItem>

MyItem未实现INotifiyPropertyChanged

当我Add项目进入OC时,UI会更新而不会出现问题。 当我替换项目时,通过

MyList[index] = newItem;

UI仅偶尔更新。 有时选择窗口上的另一个控件会有所帮助,但通常不会。更新每秒约5次。如果重要的话,这是Win7 x64机器上的WPF 4。

2 个答案:

答案 0 :(得分:3)

我猜你最好使用Remove()Insert(index, item)而不是分配给索引项。删除和插入项必须引发CollectionChanged委托。

答案 1 :(得分:2)

这对我来说完全没有意义,ObservableCollections注册了替换,到目前为止我没有问题......

我怀疑错误在其他地方。

e.g。意外地将项目替换为自身,破坏了对数据的绑定,这样的事情......

在旁注中,如果您遇到有时发生的行为,则错误很可能出现在您自己的代码逻辑中,因为有时指向您通常的不确定行为不应该在任何体面的框架中遇到。