0

项目的填充选择一个项目:的WinForms,.NET框架:3.5(Visual Studio 2008中)如何从DataGridViewComboBox

我的问题是:

我有一个DataGridView有几列,一些类型和另一种类型DataGridViewTextBoxColumn,DataGridViewComboBoxColumn,DataGridViewComboBoxColumn列由实体框架提供的实体填充。

// Example 
((System.ComponentModel.ISupportInitialize)(this.EntityBindingSource)).BeginInit(); 
this.EntityBindingSource.DataSource = this.dtContext.ExampleEntity; 

this.ComboColumn.DataSource = this.EntityBindingSource; 
this.ComboColumn.DataPropertyName = "ExampleId"; 
this.ComboColumn.DisplayMember = "Example"; 
this.ComboColumn.ValueMember = "ExampleId"; 

当您运行和加载形式,精细

但问题来了,在运行时,当我想从DataGridViewComboBoxColumn

集合中选择一个项目,在事件CellEndEdit

private void dgvDetalle_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    DataGridViewCell cell = dgvDetalle.CurrentCell; 
    DataGridViewComboBoxCell comboCell = (DataGridViewComboBoxCell)this.dgvDetalle.CurrentRow.Cells["ComboColumn"]; 

    // Attempt 1 
    comboCell.Value = (ExampleEntity)comboTarifaImpuesto.Items[0]; 

    // Attempt 2 
    comboCell.Value = ObjetoEntity; 

    // Attempt 3 
    comboCell.Value = "ValueExample" 

    // Attempt 4 
    comboCell.Value = ObjetoEntity.ToString(); 
} 
  • 尝试从组合框中选择一个项目
  • 尝试选择实体
  • 尝试选择的一个目的是通过一个链的手段或显示构件价值

,我不能选择想要的项目时,得到异常:

的DataGridViewComboBoxCell值无效

回答

1

感谢在另一个问题提供的援助: DataGridViewComboBoxCell Binding - "value is not valid"

我可以修复它,管重新进入的DataGridViewComboBoxCell的以下属性:

comboCell.DisplayMember="Example"; 
comboCell.ValueMember="ExampleId"; 

,因为我曾在类型列DataGridViewComboBoxColumn 指定我已经与这个属性的工作正常。价值

comboCell.Value = ObjetoEntity.ExampleId.ToString();