Có thực hiện PagedCollectionView trong WPF xung quanh không? Nó tồn tại trong Silverlight nhưng không có trong WPF.Bộ sưu tập theo trang Xem trong WPF
Nếu không có, cách đơn giản nhất để thực hiện điều này là gì?
Có thực hiện PagedCollectionView trong WPF xung quanh không? Nó tồn tại trong Silverlight nhưng không có trong WPF.Bộ sưu tập theo trang Xem trong WPF
Nếu không có, cách đơn giản nhất để thực hiện điều này là gì?
Bạn chỉ cần lấy mã từ Silverlight one và sử dụng mã đó trong dự án WPF của mình.
Xin lỗi tôi biết điều này thực sự cũ nhưng tôi cảm thấy tôi đang thiếu một cái gì đó ở đây, có vẻ như là toàn bộ một loạt các phụ thuộc cũng cần porting? –
Đã lâu rồi. Tôi tin rằng có một số phụ thuộc, nhưng tất cả chúng đều được bản địa hóa và dễ dàng sao chép. –
Cảm ơn Kent, tôi đã tìm thấy liên kết này chứa mọi thứ bắt buộc: https://silverlight.svn.codeplex.com/svn/Release/Silverlight4/Source/System.Windows.Data/PagedCollectionView/ cho bất kỳ ai khác tìm thấy điều này. –
Hoặc chỉ sử dụng các lớp CollectionView và "bộ lọc kép" bộ sưu tập của bạn
giải pháp tìm thấy ở đây: Own CollectionView for paging, sorting and filtering
Tôi đã dán mã snipet đây cho convinience của bạn:
// 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);
};
Tại sao bạn phải trả lời một câu hỏi thực sự cũ có câu trả lời đã chọn? – Edward
có thể trùng lặp http://stackoverflow.com/questions/784726/how-can-i-paginate-a-wpf-datagrid –