gpt4 book ai didi

c# - 如何让 BindingSource 知道其 DataSource 的变化?

转载 作者:行者123 更新时间:2023-11-30 23:20:54 24 4
gpt4 key购买 nike

我有一个:

someBindingSource.DataSource = someDataSource;

我也这样做:

someDataSource = foo();

foo() 为具有不同数据的另一个数据源执行 new

我认为每次数据源更改时都进行赋值是不正确的,即:

someDataSource = foo();
someBindingSource.DataSource = someDataSource;

那么有没有办法让 someBindingSource 知道 someDataSource 的变化?

最佳答案

如果数据源实现了 IBindingList 界面,然后是 BindingSource将被告知向数据源添加或删除项目。一个很好的实现是 BindingList<T> .

另外,如果数据源的项目实现 INotifyPropertyChanged , 然后是 BindingSource也将收到有关项目更改的通知。

在上述情况下ListChanged将引发事件。

注意

  1. 注意,如果你分配someBindingSource.DataSource = someThing;然后 someThing = new SomeThing(); , 自 someBindingSource.DataSource指向前一个对象,没有变化,也不会有通知。
  2. DataSourceChanged在您为 DataSource 分配新值后将引发事件的 BindingSource ,所以在 someThing = new SomeThing(); 之后在以前的情况下,如果您执行 someBindingSource.DataSource = someThing;然后是 DataSourceChanged将被提高。

关于c# - 如何让 BindingSource 知道其 DataSource 的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com