DataGridView,大规模数据绑定解决方案

本文关键字:解决方案 数据绑定 大规模 DataGridView | 更新日期: 2023-09-27 18:17:07

我开发了一个使用DataGridView的应用程序,其中可以有50万行以上。当前的结构是这样的:

DataGridView.DataSource is a BindingSource
BindingSource.DataSource = AggregateBindingListView
AggBLV.SourceLists = {Lists of Data}
AggBLV.Sort("PropertyName")
AggBLV.ApplyFilter(Predicate)
...

AggregateBindingListView是一个集合,它实现了:组件,IBindingListView, IList, IRaiseItemChangedEvents, ICancelAddNew, ITypedList

这是由http://blogs.warwick.ac.uk/andrewdavey

开发的一段优秀的代码

。我们已经使用它4年了,它已经成为性能瓶颈。

我的问题是:

我有一个500k项的集合,并希望将它们绑定到DataGridView。我需要它有多列排序,谓词过滤和性能优先级。

我们刚刚升级到c# 4.0。

我能做得更好吗?我可以发布时间统计数据等,但我需要一些比较的东西。

DataGridView,大规模数据绑定解决方案

您可以尝试使用如下所示的数据虚拟化。它的目的是为WPF,但它可能工作在WinForms的小调整。其思想是,您只在需要时加载必要的"页面",并在不再需要时卸载它们,而不是将所有数据一次保存在内存中。