具有用户输入的C#WPF DataGrid并相应地更新变量

时间:2018-08-21 09:54:36

标签: c# wpf datagrid

我有一个DataGrid和类“ MyNewEntry”,并且该类实现了INotifyPropertyChanged,因此字典中的每个更改也会影响datagrid中显示的值。

请参见下面的代码。

Dictionary<string, MyNewEntry> dicForMyNewEntrys = new Dictionary<string, MyNewEntry>();

ObservableCollection<MyNewEntry> entryRowMyNewEntrys = new ObservableCollection<MyNewEntry>();

myDataGrid.ItemsSource = entryRowMyNewEntrys;

我想根据用户输入来更新字典。

  1. 当用户添加新行时

  2. 当用户从数据网格删除行时

  3. 当用户编辑一些数据网格单元格

对于数字3,我可以捕捉到CellEditEnding事件(也许有更好的方法可以做到),但是对于其余的部分,我不确定如何以一种很好的方式进行。

1 个答案:

答案 0 :(得分:0)

DataGrid中编辑某些单元格时,实际上是在设置MyNewEntry类的相应属性。因此,如果您像这样创建源集合,则字典中的值应自动更新:

ObservableCollection<MyNewEntry> entryRowMyNewEntrys = new ObservableCollection<MyNewEntry>(dicForMyNewEntrys.Values);

要能够求解1和2,您可以处理CollectionChanged的{​​{1}}事件,例如:

ObservableCollection<MyNewEntry>