ObservableCollection中的项目替换不';t更新WPF项控件

ObservableCollection中的项目替换不';t更新WPF项控件,wpf,binding,observablecollection,Wpf,Binding,Observablecollection,我有(我认为)一个相当传统的WPF应用程序 我已经 用户界面只是偶尔更新。 有时在窗口上选择另一个控件会有所帮助,但通常不会。更新速度约为每秒5次。如果重要的话,这是Win7 x64机器上的WPF 4。我想您最好使用Remove()和Insert(index,item)而不是分配给索引项。删除和插入项目必须引发CollectionChanged委托。这对我来说毫无意义,替换项是通过ObservableCollections注册的,到目前为止我没有遇到任何问题 我怀疑错误还在哪里 e、 g.意外地

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

我已经

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

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

这对我来说毫无意义,替换项是通过ObservableCollections注册的,到目前为止我没有遇到任何问题

我怀疑错误还在哪里

e、 g.意外地用自身替换项,破坏与数据的绑定,诸如此类的事情


另一方面,如果您遇到过有时会发生的行为,那么错误很可能出现在您自己的代码逻辑中,因为有时会指向不确定的行为,而在任何合适的框架中通常都不会遇到这种行为。

不,这应该没有任何区别,
CollectionChanged
也会注意到替换。可能是这样,但我不会就此置之不理,如果您只是这样做,可能会掩盖错误(当然,除非这实际上是WPF中的一个错误)H.B-这一点很好。关于去哪里看有什么建议吗?我已经确认这不是线程问题,因为集合的更新使用的是主调度程序。我发现了这个问题,替换项不同,但具有相同的GetHashCode()。哦,这是一件非常不幸的事情,我很难想象到。
<ListBox ItemsSource="{Binding MyList}" ...
ObservableCollection<MyItem>
MyList[index] = newItem;