我将WPF listview绑定到对象集合。对象从远程服务器不断添加到集合中,同样反映在listview中。现在我们要求我们应该能够冻结listview一段时间了, 那些对象应该仍然被添加到集合中,但是在我们解冻它之前不应该出现在listview中(我们有按钮来冻结和解冻)。当listview绑定到集合时,最好的方法是什么?如何取消绑定并重新绑定?当列表视图中的集合未绑定时,我仍然可以过滤和排序吗?等待回答请回复
此致 桑迪普
答案 0 :(得分:1)
你可以打破绑定。在你的冻结按钮处理程序中说:
listView = _list
将在那时冻结它。然后在你的解冻处理程序中设置绑定:
listView.SetBinding(ListView.ItemsSourceProperty, New Binding("_list"))
我希望这会有所帮助。
答案 1 :(得分:0)
当列表被冻结时,您应该停止更新集合,如果您必须继续添加到集合中,即使列表被冻结(如果在不应该冻结的其他地方使用相同的集合),则考虑使用两个集合,一个总是更新,另一个绑定到列表视图。
答案 2 :(得分:0)
您用作数据源的列表类型是什么?你能用BindingList<T>
吗?如果是这样,它具有可设置的RaiseListChangedEvents
属性,允许您关闭通知。尽管如此(排序/过滤),这可能会使你的最后一点变得非常混乱。
就个人而言,我会使用2个列表 - 绑定的列表和服务器正在更新的列表。暂停时,只需停止在两者之间抽取数据。这应该使暂停的视图可以自由排序/过滤等。