c# - WPF 数据网格延迟加载

标签 c# .net wpf visual-studio-2008 wpfdatagrid

详细信息

  1. VS-2008 专业 SP1
  2. 版本 .net 3.5
  3. 语言:C#

我有一个 WPF Datagrid,它从 Linq-sql 查询 Datacontext 数据项加载。结果集包含大约 200k 行,加载它们、排序、过滤等非常慢。 提高速度有什么简单易行的方法?

我在搜索时看到的一些东西是 Scrollview、Data virtualization 等人们还谈论 Paging、Profiling 等

最佳答案

加载数据:20 万行是很多数据,没有人(用户)希望在一个地方看到。它肯定会降低您的 UI 用户体验。所以你最好的选择是过滤你的数据以减少它的数量(例如不显示关闭的订单,只显示打开的)。如果你不能这样做,你应该使用虚拟化。我没有看到任何使用分页来显示数据的应用程序(当然除了在网络中)。大多数时候这不是一个好的方法。但是,如果您谈论的是一种类似于搜索引擎结果的数据,则必须使用它。但请记住,大多数用户在搜索引擎结果中不会超过第 10 页。

过滤:对于如此大量的数据(此处为 SQL Server),我建议在您的服务器端执行此操作,或者如我所说,首先过滤整个 200k 以减少服务器端的数据量然后过滤它(为用户)以便在客户端找到一些东西。您可能还会发现以下链接有帮助:

  1. http://www.codeproject.com/KB/WPF/DataGridFilterLibrary.aspx

排序:我再次建议服务器-客户端解决方案,但您可能还会发现以下链接有帮助:

  1. http://blogs.msdn.com/b/jgoldb/archive/2008/08/26/improving-microsoft-datagrid-ctp-sorting-performance.aspx
  2. http://blogs.msdn.com/b/jgoldb/archive/2008/08/28/improving-microsoft-datagrid-ctp-sorting-performance-part-2.aspx
  3. http://blogs.msdn.com/b/jgoldb/archive/2008/10/30/improving-microsoft-datagrid-sorting-performance-part-3.aspx

许多人不使用 WPF 数据网格的默认 SortMemberPath 只是因为它对每条记录使用反射,这将大大降低排序过程的性能。

侯赛因

关于c# - WPF 数据网格延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5640924/

相关文章:

c# - 如何生成通过 FileStream 写入的数据已在磁盘上的通知?

c# - C# 可执行文件的 Ngen 输出不是有效的 Win32 应用程序

c# - 如何编写与 ViewModel 类绑定(bind)的嵌套类?

.net - 如何将 WPF 工具包图表的项目源动态数据绑定(bind)到公共(public)属性?

c# - 仅在服务器端使用证书

.net - 在 Umbraco 中设置 errorPage

c# - 根据 BackColor 反转文本颜色

c# - 删除 List<string> 开头和结尾的空行?

c# - 如何刷新WPF ListView中的ListItem,MVVM中的CollectionViewSource

c# - AJAX调用部分 View