2011-01-01 37 views
1

私はバインディングソースにバインドされたdatagridviewを持っています。 2つの列には、他の表の主キーにリンクする値が含まれています。プライマリキーの値を表示する代わりに、プライマリキーに関連付けられたアイテムの名前を表示したいと思います。言い換えれば、主キーの値は3かもしれませんが、3の代わりに "Furnace 5"をdatagridviewに表示したいとします(現在表示中です)。関連データをdatagridviewtextboxcolumnに表示

答えて

1

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

1)Linq to DataSet この2つのDataTableの製品と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)ルックアップを行うcustom DataGridViewColumnを作成します。

+0

ありがとう、コンラッド。私は提案#2と一緒に行ったが、すべてが良いオプションのように見える。 – blueshift