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

时间:2011-12-08 19:14:35

标签: c# .net winforms binding datagridview

我开发了一个使用DataGridView的应用程序,其中可以包含超过500k行。它目前的结构如下:

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

AggregateBindingListView是一个实现的集合: Component,IBindingListView,IList,IRaiseItemChangedEvents,ICancelAddNew,ITypedList

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

开发的优秀代码

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

所以这是我的问题:

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

我们刚刚升级到C#4.0。

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

1 个答案:

答案 0 :(得分:1)

您可以尝试使用here所示的数据虚拟化。它适用于WPF,但它可能适用于WinForms,只需稍作调整即可。我们的想法是,不是一次将所有数据保存在内存中,而是只根据需要加载必要的“页面”,并在不再需要时卸载它们。