WPF ListBox显示重复的项目.怎么到处走?

sja*_*anz 5 wpf asynchronous listbox observablecollection backgroundworker

我有一个带有嵌套ListBox的ListBox.两者都有ObservableCollections作为其ItemsSource设置,内部ListBox的集合是外部对象的成员...

这些集合由BackgroundWorker填充,后者从Web服务收集数据.我不得不从ObservableCollection更改为AsyncObservableCollection,以便能够从worker的代码中添加项目.AsyncObservableCollection代码来自这里:让工作线程更新绑定到ListCollectionView的ObservableCollection

我的问题是内部ListBox保持显示重复的项目.如果它决定复制它似乎总是重复第一个项目.我不知道为什么会这样.将事件监听器附加到集合的CollectionChanged事件后,我发现每个项目都会触发该事件一次.

你有什么想法?

谢谢,斯蒂芬

sja*_*anz -1

我发现 AsyncObservableCollection 导致了问题。显然它搞乱了一些事件或其他什么。我最终在工作人员的 ProgressChanged 方法中将项目添加到集合中。

  • 你能再解释一下吗?我有同样的问题。顺便说一句,似乎是一个计时问题(如果我在将内容添加到 AsyncObservableCollection 时等待 100 毫秒,则没有幽灵项目。奇怪 - 无论如何,我没有得到你的解决方案,你能解释一下吗?你放弃了 AsyncObservableCollection 吗? (2认同)