【发布时间】:2011-03-10 22:51:36
【问题描述】:
我有一个包含项目的组,我希望该组有一个子组。
主要组:“Windows”、“Linux”、“Mac”和子组:“数据”、“基本”、“高级”
子组将包含行项目。此外,每个主要组可以有不同的子组。
我该怎么做?
这是我的一些代码:
<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>
【问题讨论】: