如何从填充 DataGridViewComboBox 中选择一个项目
Posted
技术标签:
【中文标题】如何从填充 DataGridViewComboBox 中选择一个项目【英文标题】:How to select an item from a filling of a DataGridViewComboBox 【发布时间】:2011-11-04 19:48:48 【问题描述】:项目:Winforms,.NET 框架:3.5 (Visual Studio 2008)
我的问题是:
我有一个带有几列的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();
【讨论】:
以上是关于如何从填充 DataGridViewComboBox 中选择一个项目的主要内容,如果未能解决你的问题,请参考以下文章