我有一个对象列表(类型A),它充当我的datagridview的数据源。类型A的属性是类型B中的对象列表。
我想在单元格中显示B类型的列表。我想用对象B的Description
属性执行此操作.datagridview中显示的(对象B)描述以逗号分隔。
我必须挂钩哪个事件来编辑单元格值?我不想在我的对象中添加属性,因为那时我将修改我的对象以进行UI表示,这是我不想要的。
答案 0 :(得分:1)
最后我找到了一些东西。我不知道这是否是正确的方法,但它现在对我有用。这就是我所做的:
1)我已将属性VirtualMode设置为datagridview的true。
2)我处理CellValueNeeded
事件。在此事件处理程序中,我检查列索引并设置值:
private void myDataGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
if (e.ColumnIndex == 3)
{
// _appointments is a member variable which is the datasource of the grid
Appointment appointment = _appointments[e.RowIndex];
IList<DisciplineType> disciplines = appointment.GetDisciplines();
for (int i = 0; i < disciplines.Count; i++)
{
if (i > 0)
e.Value += ", " + disciplines[i].Description;
else
e.Value += disciplines[i].Description;
}
}
}
希望这也有助于其他人。或者,如果您有更好的解决方案,请告诉我。