使用DataTable进行INotifyPropertyChanged或INotifyCollectionChanged?

Mig*_*uel 3 wpf binding inotifycollectionchanged inotifypropertychanged

嗨,我正在使用DataTables遇到麻烦.所以我需要的是检测每当我更改绑定的DataTable的DataGrid中的任何单元格时.

怎么做?有INotifyPropertyChanged或有INotifyCollectionChanged

注意:我正在尝试,INotifyPropertyChanged但它只检测我何时在DataTable中设置了一些值,从来没有当我更改DataGrid中任何单元格的任何值时,我已经尝试过OneWay,TwoWay但没有任何反应.

提前致谢!

And*_*erd 9

datagrid将绑定到对象列表.如果希望在单个对象属性更改时更新网格,则每个包含的对象都必须实现该INotifyPropertyChanged接口.

INotifyCollectionChanged集合应该实现的接口,用于添加和删除事件的通知.

请参阅此页面上的"如何实现集合"部分.


这是解决问题的方法:

  • 创建一个新类,公开当前在每个属性中保存的属性DataRow.在这个类工具上INotifyPropertyChanged.
  • 而不是a DataTable,使用一个ObservableCollection<T>或你的新类.

ObservableCollection已经实现INotifyCollectionChanged,所以这可以节省您自己实现它的工作量.