Silverlight 3 - 过滤可观察的集合

时间:2009-12-17 10:39:05

标签: c# silverlight filter observablecollection

有没有办法过滤/排序可观察的集合并仍保留通知?

我环顾四周,发现CollectionViewSource根据需要对集合进行过滤和排序,但是当过滤器依赖于源集合中的items属性时,它不会刷新过滤器。

基本上我需要原始集合的视图,当视图中项目的属性发生更改时,它会更新源,当源更改时,它会更新视图。是否有任何类在silverlight 3中提供此功能?

2 个答案:

答案 0 :(得分:0)

使用TwoWay绑定的ObservableCollection不起作用吗?你能用一些代码详细说明你的例子来更详细地说明问题吗?

答案 1 :(得分:0)

我建议使用Bindable.Linq库,它暂时没有更新,并且Union运算符存在错误。但对于linq风格的过滤器,它的效果非常好。

下面是一个简单的例子,假设这是一个名为people的列表框的Silverlight用户控件的代码隐藏:

using Bindable.Linq;
...

ObservableCollection<Person> data = new ObserableCollection<Person>{.... fill in};
people.ItemsSource = data.AsBindable(Dispatcher).Where(p => p.FirstName.Equals("steve"));
data.add(new Person("steve"));

如果你这样做史蒂夫应该出现在名单上。我发现这个库非常有用,如果从codeplex下载示例项目,它会显示更高级的示例。

希望这有帮助。

还有其他几个类似的项目

相关问题