开发者

Wpf DataGrid sub-group style

开发者 https://www.devze.com 2023-03-05 08:07 出处:网络
I am grouping data-grid to two level.I mean each main group have one or many sub groups. <controls:DataGrid.GroupStyle>

I am grouping data-grid to two level.I mean each main group have one or many sub groups.

 <controls:DataGrid.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock Text="{Binding Path=Name}" />
                        </StackPanel>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.ContainerStyle>
                    <Style TargetType="{x:Type GroupItem}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type GroupItem}">
                                    <Expander IsExpanded="True"   Style="{DynamicResource newExpanderStyle}"   HorizontalAlignment="Left"
                                             Margin="5,0,0,0"    VerticalAlignment="Top" Background="{DynamicResource NormalBrushGrid}" >
                                        <Expander.Header>
                                            <StackPanel Background="#E5E5E5" Orientation="Horizontal">
                                                <TextBlock Text="{Binding Path=Name}" FontWeight="Bold" FontSize="12" Margin="5,0" />
                                                <TextBlock Text="{Binding Path=ItemCount}"/>
                                            </StackPanel>
                                        </Expander.Header>
                              开发者_如何学Python          <ItemsPresenter />
                                    </Expander>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </GroupStyle.ContainerStyle>
            </GroupStyle>
        </controls:DataGrid.GroupStyle>

I would like to differentiate sub group from main group.How can i apply different color to sub-group header

Thanks in advance

Chand.


The groups do not provide much information, but if you only have one sublevel you can use CollectionViewGroup.IsBottomLevel to differentiate. e.g.

<GroupStyle.HeaderTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Name}">
            <TextBlock.Style>
                <Style TargetType="{x:Type TextBlock}">
                    <Style.Triggers>
                        <DataTrigger Value="True">
                            <DataTrigger.Binding>
                                <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Content.IsBottomLevel"/>
                            </DataTrigger.Binding>
                            <Setter Property="Foreground" Value="Red"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
        </TextBlock>
    </DataTemplate>
</GroupStyle.HeaderTemplate>

The templated parent is a ContentPresenter and the Content of that is an internal group class.

0

精彩评论

暂无评论...
验证码 换一张
取 消