我被困在一个通常我什至不会面对的问题上,但在这种情况下,这似乎很重要。
首先,为了避免混淆,尽管我已经在标题中写了它,但我们谈论的是 Windows 窗体(不是 WPF,也不是与 Web 相关的应用程序)。
我有一个 DataGridView,其数据源来自实体的导航属性(实体框架 5,代码优先)。
除其他字段外,此数据网格还具有“IdEquipment”和“IdConfiguration”。两列都是 DataGridViewComboBoxEditingControl 类型。IdEquipment 由 BindingSource 控件填充,即“设备”:
_context.Equipments.Local.ToBindingList();
“配置”表作为外键“IdEquipment”和组合框必须如何在数据网格的每一行中作为该表的子集。为此,经过一些不成功的测试并在 SO 和其他地方进行搜索后,我找到了这个解决方案,特别关注dataGridView1_EditingControlShowing
和dataGridView1_CellValueChanged
。
这似乎是正确的方向,但是,问题是当我过滤 IdEquipment 组合框的数据源时(这也是另一个绑定到 _context.Configurations.Local.ToBindingList();
.
我在某处读过,因为我正在使用实体,所以我应该调用.ToList()
而不是.ToBindingList()
,但即使在这种情况下,过滤也不会发生(无论如何我认为 BindingList 仍然可以)。
我可以使用的另一个选项是利用第一个组合框的选定值/实体,并获取 Equipment.Configuration 导航属性,但我不知道如何使用 DataGridViewComboBoxEditingControl 来做到这一点。
有什么帮助吗?