嗨,我对数据表有一些麻烦。所以我需要的是每当我更改绑定(bind)的 DataTable 的 DataGrid 中的任何单元格时进行检测。
怎么做呢?使用 INotifyPropertyChanged
还是使用 INotifyCollectionChanged
?
注意:我正在尝试使用 INotifyPropertyChanged
但它只检测我在 DataTable 中设置某些值的时间,而不会在我更改 DataGrid 中任何单元格的任何值时检测,我已经尝试过 OneWay
和 TwoWay
但没有任何反应。
提前致谢!
最佳答案
数据网格将绑定(bind)到对象列表。如果您希望网格在单个对象属性更改时更新,则每个包含的对象必须实现 INotifyPropertyChanged
界面。
INotifyCollectionChanged
是集合应该实现的接口(interface),用于添加和删除事件的通知。
请参阅 this page 上的“如何实现集合”部分.
<小时/> 以下是解决您的问题的方法:- 创建一个新类,公开每个
DataRow
中当前保存的属性。 。在此类上实现INotifyPropertyChanged
. - 而不是
DataTable
,使用ObservableCollection<T>
或者你的新类(class)。
ObservableCollection
已经实现 INotifyCollectionChanged
,这样您就可以省去自己实现的精力。
关于wpf - INotifyPropertyChanged 或 INotifyCollectionChanged 与 DataTable 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5798936/