如何在数据绑定数据视图时编辑单元格值?

时间:2011-03-23 09:47:36

标签: c# winforms datagridview

我有一个对象列表(类型A),它充当我的datagridview的数据源。类型A的属性是类型B中的对象列表。

我想在单元格中显示B类型的列表。我想用对象B的Description属性执行此操作.datagridview中显示的(对象B)描述以逗号分隔。

我必须挂钩哪个事件来编辑单元格值?我不想在我的对象中添加属性,因为那时我将修改我的对象以进行UI表示,这是我不想要的。

1 个答案:

答案 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;
        }
    }
}

希望这也有助于其他人。或者,如果您有更好的解决方案,请告诉我。