[英]How to edit a cell value while databinding a datagridview?
我有一個充當我的datagridview數據源的對象(類型A)列表。 類型A的屬性是類型B中的對象的列表。
我想在單元格中顯示類型B的列表。 我想使用對象B的Description
屬性來執行此操作。datagridview中顯示的(對象B的)描述用逗號分隔。
我必須加入哪個事件才能編輯單元格值? 我不想向我的對象添加屬性,因為那樣的話我將為UI表示修改我的對象,而這是我不想要的。
終於我找到了東西。 我不知道這是否正確,但是現在對我有用。 這是我所做的:
1)我已經將dataGriddview的屬性VirtualMode設置為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;
}
}
}
希望這也能幫助其他人。 或者,如果您有更好的解決方案,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.