У меня есть группа, в которой есть предметы, и я бы хотел, чтобы в этой группе была подгруппа.
Основные группы : подгруппы "Windows", "Linux", "Mac" и : "Данные", "Basic", "Advanced"
Подгруппы будут содержать элементы строк. Кроме того, для каждой основной группы могут быть разные подгруппы.
Как я могу это сделать?
Вот мой код:
<Window.Resources>
<CollectionViewSource x:Key="OSGroups">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="os"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<Style x:Key="GroupContainerStyle" TargetType="{x:Type GroupItem}">
<Style.Resources>
<LinearGradientBrush x:Key="OutBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#FEB74B"/>
<GradientStop Offset="1" Color="#F19201"/>
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="True" Background="{StaticResource OutBrush}" BorderThickness="0">
<Expander.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="0,0,10,0">
<TextBlock Text="{Binding Path=Name}"/>
</StackPanel>
</Grid>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<wpfToolkit:DataGrid Name="CommandsDataGrid" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" CanUserSortColumns="False" ItemsSource="{Binding Source={StaticResource OSGroups}}" CellStyle="{StaticResource CellStyle}" HeadersVisibility="Column" Height="250" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<wpfToolkit:DataGrid.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource GroupContainerStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<wpfToolkit:DataGridRowsPresenter/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</wpfToolkit:DataGrid.GroupStyle>
<wpfToolkit:DataGrid.Columns>
<wpfToolkit:DataGridTextColumn Header="Command" Binding="{Binding Path=command}" />
<wpfToolkit:DataGridTextColumn Header="Description" Width="*" Binding="{Binding Path=description}" />
</wpfToolkit:DataGrid.Columns>
</wpfToolkit:DataGrid>
</Grid>