我正在制作一个小型 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/