2011-12-08 14 views
1

我開發了一個應用程序,該應用程序使用DataGridView,並且可以有500k以上的行。它的結構是這樣目前:DataGridView,大規模數據綁定解決方案

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年,併成爲性能瓶頸。

因此,這裏是我的問題:

我有50萬項的集合,並且想將它們綁定到一個DataGridView。我需要它具有多列排序,謂詞過濾和性能優先。

我們剛剛升級到C#4.0。

我能比我擁有的更好嗎?我可以發佈時間統計等,但我需要一些比較。

回答

1

您可以嘗試使用數據虛擬化,如here所示。它旨在用於WPF,但它可能在WinForms中稍作修改。我們的想法是,不是一次將所有數據保存在內存中,而是根據需要只加載必要的「頁面」,並在不再需要時卸載它們。