WPF

2011-11-04 12 views
6

में पेजेड संग्रह दृश्य WPF में PagedCollectionView का कार्यान्वयन है? यह सिल्वरलाइट में मौजूद है लेकिन डब्ल्यूपीएफ में नहीं है।WPF

यदि नहीं है, तो इसे लागू करने का सबसे आसान तरीका क्या होगा?

+0

संभावित डुप्लिकेट http://stackoverflow.com/questions/784726/how-can-i-paginate-a-wpf-datagrid –

उत्तर

2

आप आसानी से Silverlight one से कोड ले सकते हैं और अपने WPF प्रोजेक्ट में इसका उपयोग कर सकते हैं।

+0

क्षमा करें मुझे पता है कि यह वास्तव में पुराना है लेकिन मुझे लगता है कि मैं यहाँ कुछ याद कर रहा हूं, ऐसा लगता है निर्भरताओं का समूह जो भी आवश्यकता होगी पोर्टिंग? –

+0

यह एक लंबा समय रहा है। मेरा मानना ​​है कि कुछ निर्भरताएं हैं, लेकिन वे सभी बहुत ही स्थानीयकृत और कॉपी करने में आसान हैं। –

+2

धन्यवाद केंट, मुझे यह लिंक मिला जिसमें आवश्यक सब कुछ शामिल था: https://silverlight.svn.codeplex.com/svn/Release/Silverlight4/Source/System.Windows.Data/PagedCollectionView/ इसे ढूंढने के लिए किसी और के लिए। –

0

या केवल CollectionView वर्ग और "डबल फिल्टर" अपने संग्रह

समाधान यहां पाया का उपयोग करें: Own CollectionView for paging, sorting and filtering

मैं चिपकाया है कोड अपने convinience के लिए यहाँ snipet:

 // obtenir la CollectionView 
     ICollectionView cvCollectionView = CollectionViewSource.GetDefaultView(this.Suivis); 
     if (cvCollectionView == null) 
      return; 

     // filtrer ... exemple pour tests DI-2015-05105-0 
     cvCollectionView.Filter = p_oObject => { return true; /* use your own filter */ }; 

     // page configuration 
     int iMaxItemPerPage = 2; 
     int iCurrentPage = 0; 
     int iStartIndex = iCurrentPage * iMaxItemPerPage; 

     // déterminer les objects "de la page" 
     int iCurrentIndex = 0; 
     HashSet<object> hsObjectsInPage = new HashSet<object>(); 
     foreach (object oObject in cvCollectionView) 
     { 
      // break if MaxItemCount is reached 
      if (hsObjectsInPage.Count > iMaxItemPerPage) 
       break; 

      // add if StartIndex is reached 
      if (iCurrentIndex >= iStartIndex) 
       hsObjectsInPage.Add(oObject); 

      // increment 
      iCurrentIndex++; 
     } 

     // refilter 
     cvCollectionView.Filter = p_oObject => 
     { 
      return hsObjectsInPage.Contains(p_oObject); 
     }; 
+0

आप एक पुराने पुराने प्रश्न का उत्तर देने के लिए परेशान क्यों होंगे जिसमें एक चयनित उत्तर है? – Edward

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

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