繁体   English   中英

Datagrid不更新WPF MVVM中的行

[英]Datagrid is not updating rows in WPF MVVM

在我的应用程序中,我有两个通过实体框架连接到数据库的数据网格。 第一个数据网格仅用于选择工作人员,第二个数据网格用于添加,删除,更新先前选择的工作人员培训。 请检查屏幕截图以获得更好的视图。

问题是,每当我在第二个datagrid中添加或删除行时(经过培训), 它不是更新行 ,而是更新数据库, 但是datagrid控件保持不变 修改行效果很好。

我在尝试解决此问题时所做的事情:1.检查愚蠢的代码错误(拼错等)2.强制使用OnPropertyChanged(“ ToolboxList”)更新Itemsource; 3.一切都断点,它可以工作...

但是datagrid行是相同的...

一些线索可能是原因,但我不确定它们是否是造成问题的原因:

  1. enovaWorkers不是其表,而是hr_ToolboxTalk其表,并且由于您无法建立表的关联视图,因此它们在EF edmx文件中实际与一对多关联。

  2. 第二个数据网格不受第一个数据网格(SelectedWorker.hr_ToolboxTalk)中的选择的约束,因为每当您要编辑第二个网格中的行时,都会引发“不允许编辑”异常。 此处描述: 主详细数据网格不可编辑

    而且由于我不能也不想编辑实体框架tt文件,所以我使用GetToolboxTalkList()方法进行了变通。 因此,请检查代码。

粘贴的代码(剪切了某些部分):

XAML: pastebin.com/h3sdbfKm

ViewModel: pastebin.com/7Vj3P5UJ

ICommand类: pastebin.com/rQAh7FM9

谢谢您的帮助...

更改:

List<hr_ToolboxTalk> ToolboxList;

至:

ObservableCollection<hr_ToolboxTalk> ToolboxList;

它将起作用,列表不会自动通知视图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM