2011-12-08 16 views
1

DataGridViewを使用するアプリケーションを開発しました。そのアプリケーションには、500k行以上の行があります。 AggregateBindingListViewが実装するコレクションですDataGridView、大規模なデータバインディングソリューション

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

: コンポーネント、IBindingListView、IListの、IRaiseItemChangedEvents、ICancelAddNew、ITypedList

それはhttp://blogs.warwick.ac.uk/andrewdavey

によって開発されたコードの逸品です。現在このように構成されていますとにかく

私たちはこれを4年間使っており、パフォーマンスのボトルネックになっています。私は500Kのアイテムのコレクションを持っている、とのDataGridViewにバインドしたい

は、だからここに私の質問です。マルチカラムソート、述語フィルタリング、パフォーマンス優先度が必要です。

C#4.0にアップグレードしました。

私は自分のものよりもうまくできますか?タイミング統計などを掲載することができますが、私は比較のために何か必要があります。

答えて

1

hereのようにデータ仮想化を使用できます。これはWPFを対象としていますが、おそらく軽微な変更を加えたWinFormsでも動作する可能性があります。考え方は、すべてのデータを一度にメモリに保持するのではなく、必要に応じて必要な「ページ」をロードし、必要がなくなったときにアンロードするということです。

関連する問題