Выравнивание ячеек DataGridView не работает

У меня есть DataGridView, который я использую в проекте C# Winforms. Сетка НЕ ​​автоматически генерирует столбцы. Я вручную установил имена и свойства столбцов.

Сюда входит стиль DefaultCellStyle для ячеек.Я хочу, чтобы все ячейки типа DataGridViewCheckBoxColumn были выровнены по центру. Я вручную установил это выравнивание для каждого столбца этого типа в дизайнере. Эти изменения не отображаются при загрузке представления данных.

В качестве следующего подхода я использовал приведенный ниже код в событии DataBindingComplete (которое также не имело никакого эффекта).

foreach (DataGridViewColumn dgvc in this.dgv_Automations.Columns)
{
    if(dgvc.CellType == typeof(DataGridViewCheckBoxCell))
        dgvc.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}

При отладке приведенный выше код уже имел выравнивание, установленное по центру. Тем не менее, он все еще не отображается в сетке.

Я МОГУзаставить его работать, если во время события DataBindingComplete я сделаю что-то вроде этого:

foreach (DataGridViewRow dgvr in this.dgv_Automations.Rows)
{
    dgvr.Cells["isErrors"].Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
}

Однако у меня есть много таких столбцов, и на самом деле не имеет смысла делать это таким образом. РЕДАКТИРОВАТЬ: я реализовал это таким образом, и всего около 10 строк очень заметно отстают от установки этого свойства для каждой ячейки.

Мой вопрос: как правильно это сделать? Почему не работает конструктор DefaultCellStyle?

5
задан ImGreg 21 March 2012 в 19:54
поделиться