2011-03-23 62 views
1

我有一个对象(类型A)的列表,充当我的datagridview的数据源。类型A的属性是类型B的对象列表。如何在数据绑定datagridview的同时编辑单元格值?

我想在单元格中显示类型B的列表。我想用对象B的Description属性来做到这一点。datagridview中显示的描述(对象B)用逗号分隔。

我必须挂钩哪个事件才能编辑单元格值?我不想将属性添加到我的对象,因为然后我将修改我的对象以用于UI表示,而这我不想要。

回答

1

最后我发现了一些东西。我不知道这是否是正确的方法,但它现在对我有用。这是我所做的:

1)我已经设置属性VirtualMode为true的datagridview。 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; 
     } 
    } 
} 

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

相关问题