编辑基础DataTable时推迟DataGridView更新

时间:2009-07-15 17:36:37

标签: c# .net winforms ado.net datagridview

如果你有一个绑定到DataView的DataGridView(someDataTable.DefaultView)。

..并且从代码中对基础DataTable中的行执行了许多编辑。

是否可以推迟更新DataGridView,直到您决定完成编辑行为止?

实际上,DataGridView会在每次编辑后更新,如果您不需要即时反馈,那么如果您要一个接一个地更新DataTable中的许多行,那么效率很低,并且有点视觉刺激。

1 个答案:

答案 0 :(得分:16)

为了能够临时暂停数据绑定,您必须在DataGridViewDataView之间添加BindingSource。通过将RaiseListChangedEvents的{​​{1}}属性设置为false,不会将基础源中的更改通知给BindingSource。你可以拖拽从设计视图中的工具箱中删除DataGridView组件。我试图通过设计器设置数据源,但它不起作用,所以我在代码中做到了:

Bindingsource

要暂停数据绑定,只需将bindingSource1.DataSource = someDataTable.DefaultView; dataGridView1.DataSource = bindingSource1; 属性设置为false:

RaiseListChangedEvents

要恢复数据绑定,只需将bindingSource1.RaiseListChangedEvents = false; 设置为true并重置绑定,以便更新显示:

RaiseListChangedEvents