2012-01-10 6 views
1

Я пытаюсь добавить окно Combo в datagridview и связать комбо с данными и значением. Это то, что я делаю, и я получаю множество исключений. Что я делаю не так?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 article и пример горячей, чтобы заполнить DataGridViewComboBoxColumn из List<T>.

Еще одна вещь. Я заметил, что вы выбираете в списке из таблицы. Я предполагаю, что это таблица базы данных. Вы можете связать определенное поле из этой таблицы с свойством DataSource.

Смежные вопросы