作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个:
someBindingSource.DataSource = someDataSource;
我也这样做:
someDataSource = foo();
foo()
为具有不同数据的另一个数据源执行 new
。
我认为每次数据源更改时都进行赋值是不正确的,即:
someDataSource = foo();
someBindingSource.DataSource = someDataSource;
那么有没有办法让 someBindingSource
知道 someDataSource
的变化?
最佳答案
如果数据源实现了 IBindingList
界面,然后是 BindingSource
将被告知向数据源添加或删除项目。一个很好的实现是 BindingList<T>
.
另外,如果数据源的项目实现 INotifyPropertyChanged
, 然后是 BindingSource
也将收到有关项目更改的通知。
在上述情况下ListChanged
将引发事件。
注意
someBindingSource.DataSource = someThing;
然后 someThing = new SomeThing();
, 自 someBindingSource.DataSource
指向前一个对象,没有变化,也不会有通知。 DataSourceChanged
在您为 DataSource
分配新值后将引发事件的 BindingSource
,所以在 someThing = new SomeThing();
之后在以前的情况下,如果您执行 someBindingSource.DataSource = someThing;
然后是 DataSourceChanged
将被提高。关于c# - 如何让 BindingSource 知道其 DataSource 的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557420/
我是一名优秀的程序员,十分优秀!