【发布时间】:2014-03-19 10:04:44
【问题描述】:
在我的应用程序中,我有两个通过实体框架连接到 DB 的数据网格。第一个数据网格仅用于选择工人,第二个数据网格用于添加、删除、更新先前选择的工人培训。请查看screenshot 以获得更好的视图。
问题是,每当我从第二个数据网格(带有训练的)中添加或删除行时它不会更新行,它会更新数据库,但数据网格控件保持不变。修改行效果很好。
我在尝试解决这个问题时做了什么: 1.检查愚蠢的代码错误(拼写错误等) 2. 强制更新 Itemsource : OnPropertyChanged("ToolboxList"); 3. 断点一切,它的工作...
但是数据网格行是一样的...
一些线索可能是原因,但我不确定他们是否是这里的问题制造者:
-
enovaWorkers 它不是一个表而是一个视图,hr_ToolboxTalk 它是一个表,并且由于您无法将视图关联到表,因此它们在 EF edmx 文件中与一对多实用地关联。
李> -
第二个数据网格不会被第一个数据网格 (SelectedWorker.hr_ToolboxTalk) 中的选择绑定,因为每当您想在第二个网格中编辑行时,它都会引发 Edit is not allowed 异常。此处对此进行了描述:master detail datagrid not editable
因为我不能也不想编辑实体框架 tt 文件,所以我使用 GetToolboxTalkList() 方法解决了问题。所以请检查代码。
粘贴的代码(有些部分被剪掉了):
ViewModel:pastebin.com/7Vj3P5UJ
ICommand 类:pastebin.com/rQAh7FM9
感谢您的帮助...
【问题讨论】:
标签: c# wpf data-binding mvvm wpfdatagrid