Вы можете использовать CellFormatting
событие DataGridView
, например:
void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
var grid = (DataGridView)sender;
if (grid.Columns[e.ColumnIndex].Name == "IsActive")
{
e.Value = (bool)e.Value ? "MY_TEXT_FOR_TRUE" : "MY_TEXT_FOR_FALSE";
e.FormattingApplied = true;
}
}
РЕДАКТИРОВАТЬ (согласно комментарию):
Это очень похоже на то, что вы делаете сейчас, просто удалите связанный столбец и добавьте новый столбец нужного типа и правильно установите DataPropertyName
, например:
this.dataGridView1.Columns.Remove("COL_TO_CUSTOMIZE");
var btnCol = new DataGridViewDisableButtonColumn();
btnCol.Name = "COL_TO_CUSTOMIZE";
btnCol.DataPropertyName = "COL_TO_CUSTOMIZE";
var col = this.dataGridView1.Columns.Add(btnCol);
Примечаниечто это добавляет столбец в конце, но вы можете определить положение столбца, используя dataGridView.Columns.Insert
метод вместо Add
.