当用DataSet直接填充时,速度很快,但如果自己一行行的DataGridViewRow插入,就很慢。
请问是为什么?
dataset 方式应该内部用了 BindingManagerBase 机制,这个会使DG的数据和数据源同步更新,UI整体刷新;
一行一行插入,需要对数据源每一条遍历,重画单元格数据;
CurrencyManager manager = this.owner.BindingContext[newDataSource] as CurrencyManager;
if (manager == null)
{
return false;
}
PropertyDescriptorCollection itemProperties = manager.GetItemProperties();
if ((this.dataMember.Length != 0) && (itemProperties[this.dataMember] != null))
{
return false;
}
同上