【发布时间】:2012-02-29 21:41:07
【问题描述】:
我正在尝试实现“消息/cmets”显示。
视图由绑定到 ObservableCollection 的 ListBox 组成(这些是帖子)。我也是双向绑定 ListBox 的 SelectedItem。
当前所选帖子的回复也存储在另一个 ObservableCollection 中。此集合中的每个项目都应插入到 Posts 集合中,紧跟在所选消息之后。
属性中的所有内容都可以正常更新。当这些列表被渲染时,粪便就会击中风扇。
每次选择新帖子时,我都必须执行“.Insert()”而不是“.Add()”。即使在处理数千个帖子和数百个 cmets 时,这也会造成显着的 [不可接受的] 性能损失。
我想这样做:'PostsCollection = newObservableCollectionWithPostsAndComments',但这会导致整个列表框刷新并且 SelectedItem 变为未选中状态。
您应该如何处理将项目动态插入到绑定到 ListBox 的 ObservableCollection 中而不重新绘制 Listbox?
*除了正在显示的新项目
编辑:我有一种轻微的感觉,我犯了一个编码错误,但我不能在这里显示所有的源代码。如果你能告诉我我想要的是否可能,那就太好了。
【问题讨论】:
-
如果您发布一个示例测试代码来复制您所面临的问题,将会很有帮助
-
当您使用
ICollectionView并绑定到它,然后降序排序时会发生什么?