カスタムオブジェクトをDataTable
'sの各セルに関連付けてDataRow
、DataGridViewから取得したイベントで、色付けやその他の動作をカスタマイズできるようにします。したがって、新しい行を追加するときは、次のようにします。
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
。です。これを回避する方法はありますか?「実際の」オブジェクトにアクセスするにはどうすればよいですか?