取消绑定wpf listview的最佳方法

时间:2009-01-29 13:05:45

标签: c# .net wpf data-binding listview

我将WPF listview绑定到对象集合。对象从远程服务器不断添加到集合中,同样反映在listview中。现在我们要求我们应该能够冻结listview一段时间了,          那些对象应该仍然被添加到集合中,但是在我们解冻它之前不应该出现在listview中(我们有按钮来冻结和解冻)。当listview绑定到集合时,最好的方法是什么?如何取消绑定并重新绑定?当列表视图中的集合未绑定时,我仍然可以过滤和排序吗?等待回答请回复

此致 桑迪普

3 个答案:

答案 0 :(得分:1)

你可以打破绑定。在你的冻结按钮处理程序中说:

listView = _list

将在那时冻结它。然后在你的解冻处理程序中设置绑定:

listView.SetBinding(ListView.ItemsSourceProperty, New Binding("_list"))

我希望这会有所帮助。

答案 1 :(得分:0)

当列表被冻结时,您应该停止更新集合,如果您必须继续添加到集合中,即使列表被冻结(如果在不应该冻结的其他地方使用相同的集合),则考虑使用两个集合,一个总是更新,另一个绑定到列表视图。

答案 2 :(得分:0)

您用作数据源的列表类型是什么?你能用BindingList<T>吗?如果是这样,它具有可设置的RaiseListChangedEvents属性,允许您关闭通知。尽管如此(排序/过滤),这可能会使你的最后一点变得非常混乱。

就个人而言,我会使用2个列表 - 绑定的列表和服务器正在更新的列表。暂停时,只需停止在两者之间抽取数据。这应该使暂停的视图可以自由排序/过滤等。