gpt4 book ai didi

c# - Datagrid不更新WPF MVVM中的行

转载 作者:行者123 更新时间:2023-12-03 10:59:22 25 4
gpt4 key购买 nike

在我的应用程序中,我有两个通过 Entity Framework 连接到数据库的数据网格。第一个数据网格仅用于选择工作人员,第二个数据网格用于添加,删除,更新先前选择的工作人员培训。请检查screenshot以获取更好的 View 。

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

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

但是datagrid行是相同的...

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

  • enovaWorkers它不是一个表,它是一个 View ,hr_ToolboxTalk它是一个表,并且因为您无法建立与表的关联 View ,所以它们在EF edmx文件中实际上与一对多关联。
  • 第二个数据网格不受第一个数据网格(SelectedWorker.hr_ToolboxTalk)中的选择的约束,因为每当您要编辑第二个网格中的行时,都会引发“不允许编辑”异常。此处描述:master detail datagrid not editable

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

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

    XAML: pastebin.com/h3sdbfKm

    ViewModel: pastebin.com/7Vj3P5UJ

    ICommand类: pastebin.com/rQAh7FM9

    谢谢您的帮助...

    最佳答案

    改变:

    List<hr_ToolboxTalk> ToolboxList;

    到:
    ObservableCollection<hr_ToolboxTalk> ToolboxList;

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

    关于c# - Datagrid不更新WPF MVVM中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502264/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com