2010-02-20 89 views
9

我已经实现的LINQ到SQL .. 添加必要的表中它... 之后LINQ类将自动设置字段属性.. 我使用ObservableCollection类实现一个类..并在其构造函数中传递datacontextclass对象...如何筛选观察到的集合类集合

所以在获取所有数据后如何过滤它呢?

 
    public class BindBookIssueDetails : ObservableCollection 
     { 
      public BindBookIssueDetails(DataClasses1DataContext dataDC) 
      { 
       foreach (Resource_Allocation_View res in dataDC.Resource_Allocation_Views) 
       { 
        this.Add(res); 
       } 
      } 
     } 

 
private BindBookIssueDetails bResource; 
bResource = new BindBookIssueDetails(db); 
_cmbResource.ItemSource=bResource; 

请帮助我。

回答

13

您可以使用CollectionViewSource并对其进行过滤。所以它只影响视图(.XAML)一侧

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

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

+0

真棒=)这对我有效。 – Moulde 2011-03-13 19:23:37

0

我试图使用@ Jobi的解决方案,但由于某种原因,我得到了一个异常,试图触发FilterFunction

所以我用了一个稍微不同的方法。我投CollectionViewSourceDefaultViewBindingListCollectionView

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

,现在我可以构建一个类似SQL的过滤字符串,并将其应用这样的:

myVS.CustomFilter=myfilterstring; 

我还是会尽力解决我的问题(我推定@ Jobi的解决方案更加灵活)。