2012-01-10 60 views
1

我想添加组合框到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 2012-01-10 13:46:08

+0

@Bojan Skrchevski:我有很多不同的例外。我的代码是否有用? – Naor 2012-01-10 14:26:05

回答

2

我觉得你的问题之一是,你要添加值项集合:

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和热水从一个List<T>填充DataGridViewComboBoxColumn一个例子。

还有一件事。我注意到你正在从表中选择一个列表。我假设这是一个数据库表。您可以将该表中的特定字段绑定到DataSource属性。