【问题标题】:Silverlight 3 - Filtering an Observable CollectionSilverlight 3 - 过滤 Observable 集合
【发布时间】:2009-12-17 10:39:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# silverlight filter observablecollection


    【解决方案1】:

    使用 TwoWay 绑定的 ObservableCollection 不起作用吗?您能否用一些代码详细说明您的示例以更详细地显示问题?

    【讨论】:

      【解决方案2】:

      我建议使用Bindable.Linq 库,它有一段时间没有更新,并且联合运算符存在错误。但是对于 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 下载示例项目,它会显示更高级的示例。

      希望这会有所帮助。

      还有其他几个类似的项目

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-10
        • 1970-01-01
        • 2015-08-27
        • 2014-07-11
        • 2012-01-26
        • 2019-10-22
        相关资源
        最近更新 更多