Как выбрать элемент из заполнения DataGridViewComboBox - PullRequest
0 голосов
/ 04 ноября 2011

Проект: Winforms, .NET Framework: 3.5 (Visual Studio 2008)

Моя проблема:

У меня есть DataGridView с несколькими столбцами, некоторые типа и другого типаDataGridViewTextBoxColumn, DataGridViewComboBoxColumn, DataGridViewComboBoxColumn столбец заполняется сущностью, предоставленной Entity Framework.

// 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 Ответ

1 голос
/ 07 ноября 2011

благодаря помощи, предоставленной в другом вопросе: Привязка DataGridViewComboBoxCell - «значение недействительно»

Я мог бы это исправить, трубка, чтобы повторно ввести следующие свойства DataGridViewComboBoxCell:

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

как я указал в столбце типа DataGridViewComboBoxColumn Я уже правильно работал с этим свойством. Значение

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