0

项目:Winforms,.NET 框架:3.5 (Visual Studio 2008)

我的问题是:

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

// 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 值无效

4

1 回答 1

1

感谢在另一个问题中提供的帮助: DataGridViewComboBoxCell Binding - “value is not valid”

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

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

正如我在类型列 DataGridViewComboBoxColumn 中指定的那样,我已经正确使用了这个属性。价值

comboCell.Value = ObjetoEntity.ExampleId.ToString();
于 2011-11-07T15:00:49.767 回答