Заставить WPF DataGrid повторять заголовки столбцов под заголовком каждой группы

Я использую группировку в WPF (через PropertyGroupDescription в CollectionViewSource) и отображаю сгруппированную коллекцию в связанной DataGrid.

Обычно (как в этом примере MSDN) такая DataGrid отображает заголовки столбцов, за которыми следует заголовок каждой группы (определенный в GroupStyle.Containerstyle), за которым следуют строки данных в данной группе. Вот быстрый образ:

 + ================================================= ==== + | ColumnHeader1 | ColumnHeader2 | ColumnHeader3 | + ----------------- + ----------------- + ------------- ---- + | Группа А | + ------------------------------------------------- ---- + |   A_Value_11 |   A_Value_12 |   A_Value_13    |
 +-----------------------------------------------------+
 |   A_Value_21    |   A_Value_22    |   A_Value_23    |
 +-----------------+-----------------+-----------------+
 | Группа Б | + ------------------------------------------------- ---- + |   B_Value_11 |   B_Value_12 |   B_Value_13    |
 +-----------------------------------------------------+
 |   B_Value_21    |   B_Value_22    |   B_Value_23    |
 +=====================================================+

Есть ли способ заставить заголовки столбца DataGrid появляться / повторяться после каждого заголовка группы?

Визуально это больше похоже на то, что я хочу:

 + ================================================= ==== +
 | Группа А |
 +-----------------------------------------------------+
 |  ColumnHeader1  |  ColumnHeader2  |  ColumnHeader3  |
 +-----------------------------------------------------+
 |   A_Value_11    |   A_Value_12    |   A_Value_13    |
 +-----------------------------------------------------+
 |   A_Value_21    |   A_Value_22    |   A_Value_23    |
 +-----------------+-----------------+-----------------+
 | Группа Б |
 +-----------------------------------------------------+
 |  ColumnHeader1  |  ColumnHeader2  |  ColumnHeader3  |
 +-----------------------------------------------------+
 |   B_Value_11    |   B_Value_12    |   B_Value_13    |
 +-----------------------------------------------------+
 |   B_Value_21    |   B_Value_22    |   B_Value_23    |
 +=====================================================+

Можно ли сделать это без особых проблем?

1 ответ

Я бы добавил дополнительную первую строку для каждой группы, содержащей заголовки столбцов в виде текста, и отобразил его с помощью специального шаблона ячейки, например, в виде TextBlock, стилизованного под типовой заголовок столбца.

Другие вопросы по тегам