2011-11-04 23 views
6

Czy istnieje implementacja PagedCollectionView w WPF? Istnieje w Silverlight, ale nie jest w WPF.Widok stronicowania Widok w WPF

Jeśli nie ma, jaki byłby najprostszy sposób wdrożenia tego?

+0

Możliwa duplikatu z http://stackoverflow.com/questions/784726/how-can-i-paginate-a-wpf-datagrid –

Odpowiedz

2

Możesz po prostu wziąć kod z Silverlight one i użyć go w swoim projekcie WPF.

+0

Przepraszam, wiem, że to jest naprawdę stare, ale czuję, że tu coś pomijam, wydaje się, że jest cały pakiet zależności, które również będą potrzebne przenosić? –

+0

Minęło dużo czasu. Sądzę, że istnieją pewne zależności, ale wszystkie są bardzo zlokalizowane i łatwe do skopiowania. –

+2

Dzięki Kent, znalazłem ten link, który zawierał wszystko, co wymagane: https://silverlight.svn.codeplex.com/svn/Release/Silverlight4/Source/System.Windows.Data/PagedCollectionView/ dla każdego, kto to znalazł. –

0

Albo używać tylko klasę CollectionView i "podwójny filtr" kolekcji

rozwiązanie znaleźć tutaj: Own CollectionView for paging, sorting and filtering

mam wklejony kod snipet tutaj za wygodą:

 // 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

Dlaczego miałbyś zadawać sobie trud odpowiedzi na stare, stare pytanie z wybraną odpowiedzią? – Edward

Powiązane problemy