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

时间:2009-12-05 19:15:28

标签: c# .net user-interface datagridview

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

我发现轻松显示类似MsExcel的表的唯一方法是DataGridView。当我尝试使用这些小文件时,我真的很开心,但是当我尝试使用这个小文件时,它甚至在它完成加载之前就进入了OOM(我有超过4 GB的可用内存)。

之后虽然我发现了VirtualMode,但它确实很快。然而不幸的是,列不再是可排序的,这是必须的。

那么,我可以做些什么来获得类似于DataGridView的虚拟模式的性能,但是它也可以排序? (如果你有另一个控件,那没关系,我没必要使用DataGridView)

另外,请注意:

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

寻找一些第三方控制。我已经将Janus(www.janusys.com)和DevExpress(www.devexpress.com)用于网格,它们运行良好。