Silverlight 4.0 如何在silverlight中更改PagedCollectionView中的TotalItemCount

Silverlight 4.0 如何在silverlight中更改PagedCollectionView中的TotalItemCount,silverlight-4.0,datapager,Silverlight 4.0,Datapager,我正在尝试在datagrid silverlight中进行分页 我正在使用PagedCollectionView进行分页 <sdk:DataPager Name="RequestDataPager" PageSize="10" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Path=PagedRequestRepFamilies}" HorizontalContentAlignment="Cente

我正在尝试在datagrid silverlight中进行分页 我正在使用PagedCollectionView进行分页

 <sdk:DataPager Name="RequestDataPager" PageSize="10" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Path=PagedRequestRepFamilies}" HorizontalContentAlignment="Center" Width="{Binding ElementName=RequestDataGrid, Path=ActualWidth}"></sdk:DataPager>

我的要求:

这是datagrid第一次加载时,它获取了前10个记录事件,尽管它的记录计数是100

当我试图更改itemcount时,我需要将itemcount更改为100,而不是10,因为itemcount属性是只读的,无法更改

当我单击第2页时,它应该转到数据库并取回接下来的10条记录,itemcount仍然应该是100,并且应该继续..

以下是答案:

在ViewModel中将CurrentPageIndex属性创建为整数:

我将页面索引和页面大小传递给服务,并返回100条记录,如下所示:

result.Response = result.Response.Skip(Pageindex * pagesize).Take(pagesize).ToList()

Private Sub RequestDataGrid_PageIndexChanging(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RequestDataPager.PageIndexChanging
        Dim str As String = String.Empty
        If Not GetDataContext(Of RequestListViewModel).Pageindexchanged Then
            If (RequestDataPager.PageIndex +1) >= 1 Then
                GetDataContext(Of RequestListViewModel).GRDPager = RequestDataPager                
                GetDataContext(Of RequestListViewModel).Pageindexchanged = False
                GetDataContext(Of RequestListViewModel).PageindexLoadingrow = False
                GetDataContext(Of RequestListViewModel).IsCallRequestRepFamily = False
            End If
        End If

        'RequestDataPager.PageIndex = GetDataContext(Of RequestListViewModel).RecordCount
    End Sub
在PageIndexChange中,无法获取当前页面索引,要在加载行事件中获取当前页面索引:

 Private Sub RequestDataGrid_LoadingRow(ByVal sender As System.Object, ByVal e As System.Windows.Controls.DataGridRowEventArgs) Handles RequestDataGrid.LoadingRow
        e.Row.Header = e.Row.GetIndex + 1 + (CType(RequestDataGrid.DataContext, RequestListViewModel).PagedRequestRepFamilies.PageIndex * CType(RequestDataGrid.DataContext, RequestListViewModel).PagedRequestRepFamilies.PageSize)

        If Not GetDataContext(Of RequestListViewModel).Pageindexchanged Then
            If Not GetDataContext(Of RequestListViewModel).PageindexLoadingrow Then
                GetDataContext(Of RequestListViewModel).CurrentPageIndex = RequestDataPager.PageIndex
                If Not GetDataContext(Of RequestListViewModel).IsCallRequestRepFamily Then
                    GetDataContext(Of RequestListViewModel).FindRequestRepFamilies(GetDataContext(Of RequestListViewModel).SelectedRepFamilies)
                    GetDataContext(Of RequestListViewModel).IsCallRequestRepFamily = True
                End If
            End If
        End If

    End Sub
IsCallRequestRepFamily、Pageindexchanged属性在FindRequestRepFamilies的回调中进行相应的管理

将集合绑定为
GRDPager.PageIndex=CurrentPageIndex