我目前正在尝试使用以编程方式加载的网格来完成表单。
网格有6列,最后一列是ComboBox
这是代码的一部分
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
或正确执行此操作的方法。
[UPDATE]
第6列以编程方式加载
foreach (var c in codifRepo.GetAll())
{
codificacion.Items.Add(c);
}
codificacion.ValueMember = "id";
codificacion.DisplayMember = "descripcion";
codificacion
是ComboBoxColumn的名称
答案 0 :(得分:1)
您的DataGridViewComboBoxColumn需要设置其DataPropertyName属性。
这告诉列DataGridView数据源中的哪个属性用于获取每个组合框选定的值。
您还需要为组合框列本身提供一个DataSource,它指定下拉列表中的值列表。
还需要设置ValueMember和DisplayMember属性列。 ValueMember是列的数据源中与DataPropertyName属性匹配的属性。 DisplayMember是向用户显示的属性。
如果你没有为网格使用数据源,我强烈推荐它 - 将每一行的值添加到BindingList,然后将其设置为网格的数据源。