C# GUI,必须显示一个巨大的表格并使其可排序

标签 c# .net user-interface datagridview

我正在制作一个小型 C# GUI 应用程序,它从二进制文件中读取类似表格(单元格、行、列)的数据并将其显示给最终用户。有些文件非常小(5 列/10 行),但有些文件非常大(245 列和近 50,000 行)。

我发现唯一一个可以轻松显示类似 MsExcel 的表格的方法是 DataGridView .当我尝试使用小文件时,我真的很满意,但是当我尝试使用大文件时,它甚至在加载完成之前就出现了 OOM(而且我有超过 4 GB 的可用内存)。

虽然在那之后我发现了它的 VirtualMode ,而且真的很快。然而不幸的是,列不再可排序,这是必须的。

那么,我该怎么做才能获得类似于 DataGridView 的虚拟模式的性能,同时又能对其进行排序呢? (如果你有另一个控件没关系,我不一定非要使用 DataGridView)

此外,请注意:

  • 二进制文件不是我设计或制作的。我无法控制它们的格式。
  • 数据不在数据库中。
  • 我的最终用户不必安装数据库并在其中导入数据。

最佳答案

您可以自己处理排序,并使用“标准”排序算法之一对 datagridview 的数据源进行排序。

如果您使用 List,则可以使用“Sort()”方法。但是每个集合都可以自己排序。

关于C# GUI,必须显示一个巨大的表格并使其可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1853138/

相关文章:

c# - 如果对象为空则抛出异常

python - 如何在python中更改Tkinter按钮的on_press "animation"

c# - 没有扩展方法的智能感知

c# - 为什么 ClearType 部分不能与透明窗口一起使用?

c# - ASP.Net 5 (vnext) 如何排队后台任务和访问 ApplicationServices

.net - 从 JSON 网络服务返回 HTML - ".d"是什么?

c# - 获取不带小时的当前日期时间 C#

.net - 如何将 DataTable.Select() 的结果绑定(bind)到 ListBox 控件?

user-interface - Flutter中如何调用上滑面板?

java - 在运行时更改 JList 行颜色