【问题标题】:How to select an item from a filling of a DataGridViewComboBox如何从填充 DataGridViewComboBox 中选择一个项目
【发布时间】:2011-11-04 19:48:48
【问题描述】:

项目: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 值无效

【问题讨论】:

    标签: c# winforms entity-framework datagridviewcombobox datagridviewcomboboxcell


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 2015-10-06
      • 1970-01-01
      • 2014-09-17
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多