0

プロパティとして、それに関連する詳細テーブルのリストを持つモデル クラスがあります。

例: 私のマスター テーブルには、パッケージに関するデータ (日付、コスト、数) が含まれています。

詳細テーブルには、パッケージ内のピースに関するデータ (長さ、数、qte、幅...) が含まれています。

私はすでにマスターテーブルをデータグリッドビューにバインドしています:

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

ここで、bsAssemblage はマスターの bindingSource であり、bsAssDet は Details です。

データメンバーのことを理解していません。テーブルの名前を入力する必要があることは理解しましたが、フィールドの名前を入力した場合にのみ機能します...

また、バインディングソースが空の場合はバグが発生するため、バインドする前に空かどうかを確認する必要があります:S

したがって、イベント (OnEnter) で埋める詳細グリッドは既に持っていますが、それ自体を自動的にバインドすることが可能であることを確認しました...

誰でもこれで私を助けることができます.たぶん、少し鍬データメンバーを説明することはうまくいくはずです:S

前もって感謝します!

4

1 に答える 1

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 は (Of tabAss...) で型指定されていないため、空の場合でも dataSource にあるフィールドを認識できるようになりました。最初にコードを書いたときはそうではありませんでした。

とにかく、もっときれいになりました!:)

于 2012-08-09T14:29:38.877 に答える