假设我们有一个Customer类,它有一个Orders的子对象。在我们的 Winforms 应用程序中,我们可能会将主窗体绑定到一个客户列表。主窗体上的网格列出了客户的订单。
这都是基本的主/细节winforms。我们可以将 设置CustomerBindingSource.DataSource
到我们的客户列表中。网格DataSource
也是, CustomerBindingSource
它DataMember
是一个字符串“订单”。Orders
作为 的财产Customer
。
在运行时,我想以订单集合的形式访问网格的内容。就我而言(出于各种原因),我只能访问网格及其内容,无法访问原始客户(因此无法参考Customer.Orders
)
我想使用类似这样的伪代码来访问网格的订单列表:
CType(CType(OrdersGrid.DataSource, BindingSource).DataSource, Orders)
但是,这当然行不通。在这种经典的 Master/Detail 表单DataSource
中,Grid 实际上是CustomerBindingSource
对象,而 order 只是一个DataMember
,我只能作为字符串访问。
有什么方法可以通过网格到达Orders集合?