嗨,我在使用DataTables时遇到了一些问题。我需要检测每当我更改绑定的DataTable中DataGrid中的任何单元格时。如何做到呢?使用INotifyPropertyChanged还是INotifyCollectionChanged?请注意:我尝试使用INotifyPropertyChanged但它只能检测到当我在DataTable中设置某个值时,并且从未在DataGrid中更改任何单元格的值,我已经尝试过OneWay和TwoWay但什么也没发生。谢谢!
INotifyPropertyChanged
接口。
INotifyCollectionChanged
是应该实现的集合接口,用于通知添加和删除事件。DataRow
中保存的属性。在此类中实现INotifyPropertyChanged
接口。
2. 使用ObservableCollection<T>
或您的新类,而不是使用DataTable
。
ObservableCollection
已经实现了INotifyCollectionChanged
,因此这可以节省您自己实现的工作量。如果您将DataGrid的ItemSource设置为DataTable,则WPF会创建一个绑定到DataGrid的IBindingListView。
现在,您可以通过DataGrid编辑、添加和删除DataTable中的项目。如果您想知道DataTable中的单元格何时更改,可以订阅DataTable.ColumnChanged事件。
为什么要知道单元格何时更改?