Установка выбранного значения в DataGridView.ComboboxColumn

#c# #datagridview #combobox

#c# #datagridview #combobox

Вопрос:

В настоящее время я пытаюсь заполнить форму с помощью сетки, которая загружается программно.

Сетка состоит из 6 столбцов, а последний столбец представляет собой поле со списком

Это часть кода

 foreach(var persona in asistenciaRepo.FilterBy(x => x.plaserv == planilla).OrderBy(x => x.orden))
{
  grilla_personal.Rows.Add(persona.personal.id, persona.personal.id_legajo, persona.jerarquia.descripcion, persona.personal.nomyape, persona.orden, persona.codificacion.descripcion);
}
  

По сути, я пытаюсь сделать так, чтобы при загрузке сетки отображался список выбора, сохраненный в моей сущности

persona.codificacion.descripcion это столбец моей сущности, который содержит данные, которые вы хотите связать с моим элементом управления.

Необходимо обработать событие SelectedValueChanged или как это сделать правильно.

[ОБНОВИТЬ]

Столбец 6 загружается программно

 foreach (var c in codifRepo.GetAll())
{
   codificacion.Items.Add(c);
}
codificacion.ValueMember = "id";
codificacion.DisplayMember = "descripcion";
  

codificacion является именем ComboBoxColumn

Ответ №1:

В вашем DataGridViewComboBoxColumn должно быть установлено свойство DataPropertyName.

Это указывает столбцу, какое свойство в источнике данных DataGridView использовать для получения каждого выбранного значения со списком.

Вам также потребуется предоставить источник данных для самого столбца combobox, который определяет список значений в раскрывающемся списке.

Свойства столбцов ValueMember и DisplayMember также должны быть установлены. ValueMember — это свойство в источнике данных столбца, которое соответствует свойству DataPropertyName . DisplayMember — это свойство для отображения пользователям.


Если вы не используете источник данных для сетки, я бы настоятельно рекомендовал это — добавьте значения каждой строки в список привязок, а затем установите его в качестве источника данных сетки.