0

问候,

我有一个 DataGrid 显示一个 PagedCollectionView ,其中包含记录的总数。

我们总共有大约 4220 条记录,每页显示 20 条记录,我们大约有 210 页。

现在我一直在尝试实现这一点:

当我搜索一个人时,我希望此人显示在页面顶部,并将页面设置为它所在页面附近的任何内容。

我设法使用Linq Get items Higher then lastname中给出的示例将人置于首位,但是 PagedCollectionview 被这些结果覆盖。由于这会在被通缉的人之前跳过所有内容,因此页面数量会有所不同。

所以基本上我想要的是有一个可以输入“Jan”的搜索字段。然后我希望页面跳转到 Jan 可能所在的页面(+/- 1 页低或高)并将“Jan”作为第一条记录。

4

1 回答 1

0

找到了我自己的答案。

不是一种很好的方式,但是,因为始终首先加载成员的总数,所以我创建了一个检查以查看当前加载的数量是否高于首次加载的总量。

喜欢:

if (loadOperation.TotalEntityCount >= itemCount || !string.IsNullOrEmpty(FilterText))
{
    this.ItemCount = loadOperation.TotalEntityCount;
}
else
{
    if (!DeleteMember)
    {
        pageIndex = (int)((this.ItemCount - loadOperation.TotalEntityCount) / this.PageSize);
        RaisePropertyChanged("PageIndex");
    }
    else
    {
        DeleteMember = false;
        itemCount -= 1;
    }
}

删除成员是为了确保在删除成员时它不会尝试设置页面索引,因此 TotalEntityCount 将比 itemcount 低 1。

于 2011-01-20T11:55:33.533 回答