转发自:https://blog.csdn.net/weixin_30731305/article/details/98408465
DataSet / BindingSource / DataGridView / BindingNavigator 的关系与绑定、更新顺序
王爷的大房子 于 2013-01-08 15:55:00 发布 87 收藏
版权
1.数据源DataSet是保存数据,以及发布数据更新通知的核心。
2.BindingSource,是控件(DataGridView / BindingNavigator)与数据源交互的桥梁。BindingSource的DataSource指向数据源DataSet之后,数据源或控件的数据更改,则会被BindingSource传递到另一头。
3.DataGridView / BindingNavigator是数据控件,它们应该从BindingSource获取数据。当数据控件的数据,被用户更改后,则会通知BindingSource,接着BindingSource再通知数据源DataSet。
因此,这些组件绑定与更新的顺序为:
1.创建DataSet
2.把BindingSource的BindingSource绑定到DataSet。
3.把DataGridView的DataSource,以及BindingNavigator的BindingSource,都绑定到BindingSource。
关键:如果DataSet的数据发生变化,或者DataGridView / DataSource的数据发生变化,则双向的更改是自动进行与传递的。
但如果DataSet被替换,则需要把BindingSource的BindingSource重新绑定到DataSet。DataGridView 与 BindingNavigator则不需要更改,因为BindingSource会自动通知他们。
同理,如果DataGridView的DataSource,以及BindingNavigator的BindingSource被替换,也就是他们的BindingSource被替换,则DataSet也需要重新绑定到新的BindingSource中。注意,DataGridView的DataSource,以及BindingNavigator的BindingSource,应该被替换为同一个BindingSource,这样他们才能具有可交互性。
如果有任何问题,请加QQ群 68328977 来进行讨论。