1

bindingsource にバインドされた datagridview があります。2 つの列には、他のテーブルの主キーにリンクする値が含まれています。主キーの値を表示する代わりに、主キーに関連付けられたアイテムの名前を表示したいと考えています。つまり、主キーの値は 3 かもしれませんが、datagridview に 3 (現在表示されている) ではなく「Furnace 5」を表示したいと考えています。

4

1 に答える 1

1

これを行うには、少なくとも 4 つの方法があります (最も簡単なものから最も難しいものまで)。

1) Linq to DataSet これは、2 つの DataTables Products と ProductTypes を持つ型指定された DataSet を想定しています。これは必須ではありません (同じデータセットにある必要はなく、ProductType が DataTable である必要もありません)。

linq をデータセットに使用するには、.NET 3.5 以降が必要です

Dim ProductList = _
            (From product In p.products.AsEnumerable() _
            Join types In p.productTypes.AsEnumerable() _
            On product.ProductTypeID Equals types.ProductTypeID _
            Select New With {
                .ProductId = product.ProductID, _
                .Description = product.Description, _
                .Type = types.Description}).ToList

        Me.DataGridView1.DataSource = ProductList

2)必要な方法でデータを取得し、目的の列にバインドします

3) TextBoxColumn を使用せず、代わりにComboBoxDataColumnを使用してください。

4)ルックアップを行うカスタム DataGridViewColumnを作成します。

于 2011-01-02T04:15:35.213 に答える