WPF中的分页集合视图

WPF中是否有PagedCollectionView的实现? 它存在于Silverlight中但不在WPF中。

如果没有,那么最简单的实现方法是什么?

您可以简单地从Silverlight中获取代码并在WPF项目中使用它。

或者只使用CollectionView类和“双重过滤”您的集合

解决方案在这里找到: 自己的CollectionView用于分页,排序和过滤

为了您的方便,我在这里粘贴了代码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 hsObjectsInPage = new HashSet(); 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); };