2010-02-20 39 views
9

tôi đã thực hiện LINQ-to-SQL .. Thêm bảng cần thiết trong nó ... sau đó lớp LINQ sẽ tự động thiết lập thuộc tính cho lĩnh vực .. tôi thực hiện một lớp sử dụng ObservableCollection lớp .. và chuyển đối tượng datacontextclass trong hàm tạo của nó ...Làm thế nào để lọc Quan sát Collection Lớp Collection

vì vậy sau khi nhận được tất cả dữ liệu cách lọc nó?

 
    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; 

Xin vui lòng giúp tôi.

Trả lời

13

Bạn có thể sử dụng CollectionViewSource và lọc bộ lọc. Vì vậy, nó chỉ ảnh hưởng ở bên Xem (.XAML)

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

Kiểm tra blog này để biết thêm chi tiết. http://bea.stollnitz.com/blog/?p=31

+0

Awesome =) Điều đó phù hợp với tôi. – Moulde

0

Tôi đã cố gắng sử dụng giải pháp của @ Jobi nhưng vì một lý do nào đó, tôi có ngoại lệ khi cố gắng kích hoạt FilterFunction.

Vì vậy, tôi đã sử dụng một cách tiếp cận hơi khác. Tôi đúc CollectionViewSource 's DefaultView đến một BindingListCollectionView

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

và bây giờ tôi có thể xây dựng một bộ lọc chuỗi SQL-like và áp dụng nó như thế:

myVS.CustomFilter=myfilterstring; 

tôi vẫn sẽ cố gắng giải quyết vấn đề của tôi (tôi giả sử giải pháp của @ Jobi linh hoạt hơn).

Các vấn đề liên quan