1

我有一个方法,我在一个返回列表的表单中调用它,然后我将它放入 BindingSource 并将 BindingSource 放入 DataGridView。Order 类有一个名为 Items 的属性,其中包含一个 List。我的 Order 和 Item 类都实现了 INotifyPropertyChanged 接口。

我想要做的是,当在 DataGridView 中单击一行时,它会将与订单关联的项目列表从它的 Items 属性拉到另一个网格中。我想确保这些项目以 2 方式绑定到网格,但我不能以我想要的方式调用它......

itemsGrid.DataSource = orderBindingSource[orderGrid.CurrentRow.Index].Items;

我无法从 BindingSource 中访问列表的属性(在 . 运算符之后,Items 不是可用选项)...有什么建议吗?我尝试使用 a BindingList<Order>BindingList<List<Order>>但遇到了隐式转换错误。有什么建议么?

*编辑:好的,我已经设法让 BindingList 工作。我不知道我必须像这样添加列表

orderList = new BindingList<Order>(Method To Retrieve List<Order>)

除此之外,显示订单的第一个网格可以完美运行和更新。包含订单项目的子网格,例如

itemsGrid.Datasource = orderList[ordersGrid.CurrentRow.Index].Items;

它正确显示。我没有启用编辑,因为我有几个已设置的文本框,并且每个文本框都绑定到当前选择的 ordersGrid 行的 orderList 中的 Item。我可以更新子网格中所选项目的文本框中的数据,但是当我离开文本框时,该项目属性的子网格行在我离开文本框时不会更新。但是,如果我在网格中选择另一个项目,它将更新。当我离开文本框而不是单击网格中的另一行时,如何让它更新?

4

0 回答 0