2010-02-20 20 views
9

मैं लागू कर दिया है LINQ करने के लिए-SQL .. उस में आवश्यक तालिका जोड़ें ... के बाद कि LINQ वर्ग अपने आप फ़ील्ड के लिए गुण सेट होगा .. मैं एक वर्ग ObservableCollection वर्ग का उपयोग कर कार्यान्वित .. और अपने कन्स्ट्रक्टर में डेटाकॉन्टेक्स्ट क्लास ऑब्जेक्ट पास करें ...फिल्टर करने के लिए कैसे नमूदार संग्रह क्लास संग्रह

तो सभी डेटा प्राप्त करने के बाद इसे फ़िल्टर करने के बाद?

 
    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

0

मैंने @ जॉबी के समाधान का उपयोग करने की कोशिश की लेकिन किसी कारण से मुझे FilterFunction को आग लगाने का प्रयास करने का अपवाद मिला।

तो मैंने थोड़ा अलग दृष्टिकोण इस्तेमाल किया। मैं CollectionViewSource के DefaultView एक BindingListCollectionView

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

लिए डाली और अब मैं एक SQL जैसी फिल्टर स्ट्रिंग का निर्माण और ऐसे ही इसे लागू कर सकते हैं:

myVS.CustomFilter=myfilterstring; 

मैं अभी भी अपने समस्या को हल करने की कोशिश करेंगे (मैं अनुमान लगाएं @ जॉबी का समाधान अधिक लचीला है)।

संबंधित मुद्दे