【发布时间】:2013-02-23 16:36:09
【问题描述】:
我有一个从 DataTable 填充的 WPF DataGrid。到目前为止,我从未有超过 200 条左右的记录,因此 DataGrid 被完美地填充。但是,我现在必须添加对更大数据库的支持。因此,我想向用户显示 200 条记录,然后让他按下某种按钮,以显示接下来的 200 条记录,依此类推。这样我可以更快地加载 DataGrid。
最好的方法是什么?我有一些在 ASP.NET 中分页的经验,但我在 WPF 中从未有过这样的要求。
这是我的 DataGrid 代码:
<DataGrid Name="dgResults"
IsReadOnly="True"
AutoGenerateColumns="True"
AllowDrop="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
CanUserSortColumns="False"
Margin="15,10,10,10"
Visibility="Collapsed"
ItemsSource="{Binding}"/>
绑定:
dgResults.DataContext = dtResults.AsDataView();
【问题讨论】:
-
请检查[这个问题][1],有几个答案可以帮助你。 [1]:stackoverflow.com/questions/14793759/…
-
@Woodman - 我已经看过了,但是我不确定分页是否是我想要的解决方案。我刚刚提到它,因为我有 ASP.NET 方面的经验。我更喜欢简单的“显示下 200 个结果”按钮或类似的按钮。
-
"a simple "Show next 200 results"" 实际上意味着“分页”。所以用户使用“数据页面”。您可以搜索此关键字以获取一组可能的解决方案。我在上述主题中的回答涵盖了更高级的场景 - 数据虚拟化,这意味着数据在后台无缝加载。
-
@Woodman - 所以你的意思是这可以通过 SQL 关键字来完成?
-
不,这当然还不够。原始 WPF DataGrid 不支持分页,所以恐怕您必须以某种方式手动添加此功能。
标签: c# .net wpf database performance