我想将自定义对象与DataTable
的DataRow
中的每个单元相关联,以便从DataGridView获取的事件上可以自定义着色和其他行为。所以,当我添加一个新行,我做到以下几点:如何访问DataRow中单元格后面的“真实”对象
DataRow oRow = dtItens.NewRow();
oRow["CodFamilia"] = new ClsCelula(TipoCelula.tcMostrar, "", Color.White);
oRow["Familia"] = new ClsCelula(TipoCelula.tcMostrar, "", Color.White);
oRow["Item"] = new ClsCelula(TipoCelula.tcMostrar, "", Color.White);
oRow["Descricao"] = new ClsCelula(TipoCelula.tcMostrar, "", Color.White);
oRow["Referencia"] = new ClsCelula(TipoCelula.tcMostrar, "Saldo Inicial", Color.Aqua);
dtItens.Rows.Add(oRow);
在DataGridView中的CellFormatting事件,我想我的ClsCelula对象读取它的属性,象下面这样:
Object oCelula = dtItens.Rows[e.RowIndex][e.ColumnIndex];
if (oCelula != null)
{
if (oCelula is ClsCelula)
{
ClsCelula oValorCelula = (ClsCelula)oCelula;
e.CellStyle.BackColor = oValorCelula.Cor;
}
}
然而,这是行不通的,因为当我读取行/列索引时代码可能调用ToString()
,所以oCelula始终是System.String
。有没有办法解决?我怎样才能访问“真实”的对象?
如果您有对象表示,为什么使用DataTable?你可以直接绑定到对象模型... – 2011-02-13 22:10:21
真的吗?不知道我可以用DataGridView做到这一点。我怎样才能做到这一点? – Pascal 2011-02-13 22:14:07