2013-08-19 41 views
1

我有两个表:列和表(外键 - 表ID)。我想用combobox在dataGridView中显示列。在要显示的组合框中,相关表格(名称表格)和选定的项目是按列设置的值。在DataGridViewComboBoxColumn中设置selectedValue

List<columns> columns = DataLoader.GetColumns(); 
List<tables> tables = DataLoader.GetTables(); 

this.editingDataGridView.DataSource = columns; // my dataGridView 
DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn(); 

comboBoxColumn.DisplayMember = "Table_Name"; 
comboBoxColumn.ValueMember = "Table_ID"; 
comboBoxColumn.DataSource = tables; 

//add combobox column in dataGrid 
this.editingDataGridView.Columns.Add(comboBoxColumn); 

//AND this i want set value 
int index = this.editingDataGridView.Columns.IndexOf(comboBoxColumn); 
for (int i = 0; i < columns.Count; i++) 
{ 
    this.editingDataGridView.Rows[i].Cells[index].Value = columns[i].Table_ID; 
} 

运行后,我得到的GridView与组合框柱与数据源,但没有选择默认值! enter image description here

+0

所选值取决于当前行底层数据源。什么是你想要的默认值? –

+0

包含在字段Table_ID的列表列中。我在循环中添加combobxColumn后(对于每个comboboCell,我从列列表中设置值)执行此操作 – isxaker

+0

@KingKing示例,在对象列中,我有字段Table_id = 1,将数据源加载到组合框后,我希望所选值等于1! – isxaker

回答

2

关键POIN是

comboBoxColumn.DataPropertyName = "Table_ID"; 

需要设置dataGridComboBoxColumn

More this

0

在vb.net的DataPropertyName,我发现这个溶液

Dim cbx As DataGridViewComboBoxCell = dgvEstudios.Rows(x).Cells(1) 
cbx.Value = Trim("String value") 
相关问题