在我的应用程序中,我有两个通过Entity Framework连接到DB的数据网格。第一个datagrid仅用于选择worker,第二个datagrid用于添加,删除,更新以前选定的worker training。请查看screenshot以获得更好的视图。
问题是每当我从第二个数据网格中添加或删除行时(带有训练)它不是更新行,它更新数据库,但数据网格控件保持不变。修改行很有效。
在尝试解决此问题时我做了什么: 1.检查愚蠢的代码错误(拼写错误等) 2.强制更新Itemsource:OnPropertyChanged(“ToolboxList”); 断点一切都有效......
但是datagrid行是相同的......
可能是原因的一些线索,但我不确定他们是否是问题制定者:
enovaWorkers它不是一个表,它是一个视图,hr_ToolboxTalk是一个表,并且因为你不能对表进行关联视图,所以它们在EF edmx文件中实际上与一对多关联。
第二个数据网格没有通过从第一个数据网格(SelectedWorker.hr_ToolboxTalk)中选择来绑定,因为无论何时你想编辑第二个网格中的行,它都会引发编辑不允许异常。这在此处描述:master detail datagrid not editable
由于我无法编辑权限框架tt文件,因此我使用GetToolboxTalkList()方法进行了解决方法。所以请检查代码。
粘贴代码(某些部分已被删除):
ViewModel:pastebin.com/7Vj3P5UJ
ICommand类:pastebin.com/rQAh7FM9
感谢您的帮助...
答案 0 :(得分:3)
变化:
List<hr_ToolboxTalk> ToolboxList;
为:
ObservableCollection<hr_ToolboxTalk> ToolboxList;
它会起作用,列表不会通知视图Automaticaly。