vb.net从master dgv的list属性中详细说明datagridview

时间:2012-08-09 13:30:16

标签: vb.net data-binding datagridview master-detail bindingsource

我有一个模型类,它有一个属性,与之相关的详细信息表列表。

例如,我的主表包含有关包的数据(日期,成本,数量)

详细信息表包含有关包中件数的数据(长度,数量,qte,宽度......)

我已将主表格绑定到datagridview:

dgvAssemblages.DataSource = bsAssemblage
For Each objTmp As Object In lstTmp
    bsAssemblage.Add(objTmp)
Next
bsAssDet.DataSource = bsAssemblage
'bsAssDet.DataMember = "Details"

这里,bsAssemblage是主绑定源,bsAssDet是详细信息。

我不明白数据库的事情,我明白我必须在其中加入表格的名称,但只有在我输入字段的名称时它才有效...

此外,如果bindingSource为空,它会出错,所以我必须在绑定之前检查是否为空:S

所以,我已经有了详细信息网格来填充一个事件(OnEnter),但我已经看到应该可以自动绑定它...

任何人都可以帮助我解决这个问题,或许可以解释一下这个数据库应该有效:S

提前致谢!

1 个答案:

答案 0 :(得分:0)

很好,我已经找到了如何链接网格!

问题是,我做了几件事:S

这是我的新代码:

dgvAssemblages.AutoGenerateColumns = True
dgvAssDet.AutoGenerateColumns = True
bsAssemblage.DataSource = reqTable(Of tabAssemblage_Entete)("Assemblage_Entête", intCurrentProject) 'lstTmp
dgvAssemblages.DataSource = bsAssemblage
reqAssemblageDetails(intCurrentProject, dgvAssemblages.DataSource.List) 'Loads the Details
dgvAssDet.DataSource = bsAssemblage
dgvAssDet.DataMember = "Details"

我不确定是什么让它工作得很好,我想AutoDenerateColumns就是为了这个。

另外,reqTable是nof Typed with(Of tabAss ...),所以它现在知道dataSource中的哪些字段即使是空的,也不像我第一次编写代码那样,

无论如何,现在更加干净! :)