BindingSource和Composite属性

时间:2012-05-04 01:54:55

标签: c# winforms list data-binding datagridview

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

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

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

我无法从BindingSource中访问列表的属性(在。运算符之后,Items不是可用选项)...是否有任何建议?我尝试过使用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。我可以更新子网格中所选项目的文本框中的数据,但是当我离开文本框时更改,编辑该项目属性的子网格行不会在我离开文本框时更新。但是,如果我在网格中选择另一个项目,它将更新。如何在离开文本框时更新它而不必单击网格中的另一行?

0 个答案:

没有答案