Datagrid不会更新WPF MVVM中的行

时间:2014-03-19 10:04:45

标签: c# wpf data-binding mvvm wpfdatagrid

在我的应用程序中,我有两个通过Entity Framework连接到DB的数据网格。第一个datagrid仅用于选择worker,第二个datagrid用于添加,删除,更新以前选定的worker training。请查看screenshot以获得更好的视图。

问题是每当我从第二个数据网格中添加或删除行时(带有训练)它不是更新行,它更新数据库,但数据网格控件保持不变。修改行很有效。

在尝试解决此问题时我做了什么: 1.检查愚蠢的代码错误(拼写错误等) 2.强制更新Itemsource:OnPropertyChanged(“ToolboxList”); 断点一切都有效......

但是datagrid行是相同的......

可能是原因的一些线索,但我不确定他们是否是问题制定者:

  1. enovaWorkers它不是一个表,它是一个视图,hr_ToolboxTalk是一个表,并且因为你不能对表进行关联视图,所以它们在EF edmx文件中实际上与一对多关联。

  2. 第二个数据网格没有通过从第一个数据网格(SelectedWorker.hr_ToolboxTalk)中选择来绑定,因为无论何时你想编辑第二个网格中的行,它都会引发编辑不允许异常。这在此处描述:master detail datagrid not editable

    由于我无法编辑权限框架tt文件,因此我使用GetToolboxTalkList()方法进行了解决方法。所以请检查代码。

  3. 粘贴代码(某些部分已被删除):

    XAML:pastebin.com/h3sdbfKm

    ViewModel:pastebin.com/7Vj3P5UJ

    ICommand类:pastebin.com/rQAh7FM9

    感谢您的帮助...

1 个答案:

答案 0 :(得分:3)

变化:

List<hr_ToolboxTalk> ToolboxList;

为:

ObservableCollection<hr_ToolboxTalk> ToolboxList;

它会起作用,列表不会通知视图Automaticaly。