Заставить 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, стилизованного под типовой заголовок столбца.