Silverlight 4.0 如何在silverlight中更改PagedCollectionView中的TotalItemCount
我正在尝试在datagrid silverlight中进行分页 我正在使用PagedCollectionView进行分页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
<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