DataGridView に大量のデータ (1000 行 15 列以上) を表示したい。DataGridView.DataSource として BindingList を使用します。BindingList は体系的に変更されます (15 秒) - 一部の行が削除、変更、または追加されます (多くはありませんが、すべての行の数よりも確実に少なくなります)。
初めて DataGridView を準備して表示することも、それを変更することも、必要なほど効率的ではありません。私は簡単な解決策を見つけました(そしていくつかの同様のもの):
bindingList.RaiseListChangedEvents = false;
// modifying BindingList
bindingList.RaiseListChangedEvents = true;
bindingList.ResetBindings();
これらの行を追加してから、DataGridView のビルドと更新が大幅に高速化されました。しかし、この解決策には容認できない欠点が 1 つあります。リストを更新した後、スクロールがリストの上部に移動し、選択が失われます。DataGridView をすばやく変更するだけでなく、スクロールして (更新前に) 前の位置に留まり、行の選択を変更しないソリューションはありますか?