DataPager 和 Datagrid,如何移动到当前所选项目的页面

问题描述 投票:0回答:1

在 Silverlight 项目中,我有一个包含案例列表(DataGrid)的视图。该列表使用 DataPager 进行分页。我的源集合包含在 PagedCollectionView 中。

创建项目后,它会添加到列表中并设置为 DataGrid 中的选定项目,根据列表排序,这可能位于数据分页器中当前活动的另一个页面上。

如何将数据分页器移动到新添加项目的页面?

    public PagedCollectionView<CaseDTO> Cases { get; set; }

    public void CreateCase()
    {
        var requestDispatcher = container.GetInstance<IAsyncRequestDispatcher>();
        requestDispatcher.Add(GetRequest<CreateCaseRequest>());
        requestDispatcher.Add(GetRequest<GetCasesRequest>());

        requestDispatcher.ProcessRequests(
            responses =>
            {
                selectedCaseId = responses.Get<CreateCaseResponse>().CaseId;
                UpdateCases(responses.Get<GetCasesResponse>());

                Cases.MoveToPageOf(SelectedCase); // How to implement?
            },
            ex => { throw new Exception(ex.ToString()); }
            );
    }

Cases.MoveToPageOf(SelectedCase); // 如何实现?

.net pagination datagrid datapager
1个回答
0
投票

我发现最好的方法就是搜索页面。我制作了以下扩展方法来做到这一点:

public static class PagedCollectionViewExtension
{
    public static bool MoveToPageOf(this PagedCollectionView collectionView, object item)
    {
        int pageSearched = 0;

        while (pageSearched < collectionView.PageSize)
        {
            if (collectionView.IndexOf(item) != -1)
                return true;

            collectionView.MoveToNextPage();
            pageSearched++;
        }

        return false;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.