【发布时间】:2011-07-28 22:07:33
【问题描述】:
我想在 DataGridView 中显示大量数据(超过 1000 行和 15 列)。我使用 BindingList 作为 DataGridView.DataSource。 BindingList 被系统地修改(15s) - 一些行被删除、修改或添加(不多,肯定少于所有行的数量)。
第一次准备和显示 DataGridView 以及修改它都没有所需的效率。我找到了一个简单的解决方案(还有一些类似的):
bindingList.RaiseListChangedEvents = false;
// modifying BindingList
bindingList.RaiseListChangedEvents = true;
bindingList.ResetBindings();
由于我添加了这些行,DataGridView 的构建和刷新速度大大加快。但是这种解决方案有一个不可接受的缺点。刷新列表后,滚动在列表顶部移动,选择丢失。有什么解决方案不仅可以快速修改DataGridView,而且可以滚动保持在以前的位置(更新前)并且不改变行选择?
【问题讨论】:
标签: c# datagridview bindinglist