#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 — это свойство для отображения пользователям.
Если вы не используете источник данных для сетки, я бы настоятельно рекомендовал это — добавьте значения каждой строки в список привязок, а затем установите его в качестве источника данных сетки.