DataSet / BindingSource / DataGridView / BindingNavigator 的关系与绑定、更新顺序

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 来进行讨论。
原文地址:https://www.cnblogs.com/xxxteam/p/2851277.html