2010-02-20 63 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的解決方案更加靈活)。