【问题标题】:How to filter Observable Collection Class Collection如何过滤 Observable Collection 类集合
【发布时间】:2010-02-20 19:27:21
【问题描述】:

我已经实现了 Linq-To-Sql.. 在其中添加必要的表... 之后,linq 类将自动为字段设置属性.. 我使用ObservableCollection 类实现了一个类.. 并在其构造函数中传递 datacontextclass 对象...

那么在得到所有数据后如何过滤呢?

公共类 BindBookIssueDetails : ObservableCollection { 公共 BindBookIssueDetails(DataClasses1DataContext dataDC) { foreach (Resource_Allocation_View res in dataDC.Resource_Allocation_Views) { this.Add(res); } } }

私人 BindBookIssueDetails bResource; bResource = new BindBookIssueDetails(db); _cmbResource.ItemSource=bResource;

请帮帮我。

【问题讨论】:

    标签: wpf linq-to-sql filter observablecollection


    【解决方案1】:

    您可以使用CollectionViewSource 并对其进行过滤。所以它只影响 View(.XAML) 端

        ICollectionView collectionView = CollectionViewSource.GetDefaultView(bResource);
        collectionView.Filter = new Predicate<object>(YourFilterFunction);
    

    查看此博客了解更多详情。 http://bea.stollnitz.com/blog/?p=31

    【讨论】:

      【解决方案2】:

      我尝试使用@Jobi 的解决方案,但由于某种原因,我在尝试触发FilterFunction 时遇到了异常。

      所以我使用了一种稍微不同的方法。我将CollectionViewSourceDefaultView 转换为BindingListCollectionView

      myVS=(BindingListCollectionView)CollectionViewSource.GetDefaultView(sourceofdata);
      

      现在我可以构造一个类似 SQL 的过滤器字符串并像这样应用它:

      myVS.CustomFilter=myfilterstring;
      

      我仍然会尝试解决我的问题(我认为@Jobi 的解决方案更灵活)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 2012-07-02
        相关资源
        最近更新 更多