2012-01-10 17 views
1

データグラムビューにコンボボックスを追加し、コンボをデータと値でバインドしようとしています。これは私がやっていることであり、私は多くの例外をもって終わります。私は間違って何をしていますか?DataGridViewComboBoxColumnが正しくバインドされません。

 IList<string> houseNums= myTable.Select(x => house_num).ToList(); 

     dealersGridView.Columns.Clear(); 
     dealersGridView.DataSource = myTable; 
     dealersGridView.Columns["id"].DisplayIndex = 1; 
     dealersGridView.Columns["id"].HeaderText = "Field 1"; 
     dealersGridView.Columns["name"].DisplayIndex = 2; 
     dealersGridView.Columns["name"].HeaderText = "Field 1"; 
     dealersGridView.Columns.Remove("house_num"); 
     DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn(); 
     column.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7 }); 
     column.DisplayIndex = 8; 
     column.HeaderText = "MyHeader"; 
     column.DataSource = houseNums; 
     dealersGridView.Columns.Add(column); 

コンボデータがバインドされず、選択した値が表示されません。何が間違っている..です

+0

例外はありますか? – TheBoyan

+0

@Bojan Skrchevski:私は多くの異なる例外があります。私のコードはサスセンスですか? – Naor

答えて

2

私はあなたの問題の一つは、あなたがItemsコレクションに値を追加することであると思う:?

column.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7 }); 

、その後、あなたは再びDataSource財産

column.DataSource = houseNums; 
を設定しています

どちらか一方を実行する必要があります。

foreach (string e in houseNums) column.Items.Add(e); 

または:

column.DataSource = myTable.Select(x => house_num).ToList(); 

Here's an articleList<T>からDataGridViewComboBoxColumnを移入するホット例。

もう1つ。私はあなたがテーブルからリストを選択していることに気づいた。私はこれがデータベース表であると仮定します。そのテーブルの特定のフィールドをDataSourceプロパティにバインドできます。

関連する問題