没有显式重新创建的WPF刷新CollectionView(Refresh()方法调用)

时间:2011-04-07 14:30:50

标签: c# wpf collections

是否可以在没有显式Refresh()方法调用的情况下“刷新”(更新)视图?问题是它重新创建了一个完整的集合,而在UI上,所选的行将被取消选中。我有一个复杂的列表视图(每行包含另一个子列表视图),当我调用Refresh()时,子行中的选择消失。清除SortDescriptions并手动再次添加它们对我来说不起作用(似乎Clear()和Add()排序描述的方法在内部调用Refresh())

那么,有没有机会在没有娱乐的情况下更新视图?

我的情况: 使用Dispatcher.Timer我手动更新每个项目的所有属性(以避免选择消失),然后更新一个项目的list-type属性(属性与另一个集合,它也正在'手动'更新)然后我需要以某种方式刷新视图,当我在子集合上调用Refresh()时,一切正常,但我也需要刷新顶级集合,以获取应用于顶级集合的排序描述,这可能已更改。 / p>

2 个答案:

答案 0 :(得分:9)

在这篇精彩的博文中找到了解决方案:DrWPF

答案 1 :(得分:1)

另一种选择是使用ContinuousLinq始终对视图进行排序/分组。