我有一个DataGrid和类“ MyNewEntry”,并且该类实现了INotifyPropertyChanged,因此字典中的每个更改也会影响datagrid中显示的值。
请参见下面的代码。
Dictionary<string, MyNewEntry> dicForMyNewEntrys = new Dictionary<string, MyNewEntry>();
ObservableCollection<MyNewEntry> entryRowMyNewEntrys = new ObservableCollection<MyNewEntry>();
myDataGrid.ItemsSource = entryRowMyNewEntrys;
我想根据用户输入来更新字典。
当用户添加新行时
当用户从数据网格删除行时
当用户编辑一些数据网格单元格
对于数字3,我可以捕捉到CellEditEnding事件(也许有更好的方法可以做到),但是对于其余的部分,我不确定如何以一种很好的方式进行。
答案 0 :(得分:0)
在DataGrid
中编辑某些单元格时,实际上是在设置MyNewEntry
类的相应属性。因此,如果您像这样创建源集合,则字典中的值应自动更新:
ObservableCollection<MyNewEntry> entryRowMyNewEntrys = new ObservableCollection<MyNewEntry>(dicForMyNewEntrys.Values);
要能够求解1和2,您可以处理CollectionChanged
的{{1}}事件,例如:
ObservableCollection<MyNewEntry>