Стиль подгруппы Wpf DataGrid

Я группирую сетку данных на два уровня. Я имею в виду, что каждая основная группа имеет одну или несколько подгрупп.

 <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>
                                        <ItemsPresenter />
                                    </Expander>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </GroupStyle.ContainerStyle>
            </GroupStyle>
        </controls:DataGrid.GroupStyle>

Я хотел бы отличить подгруппу от основной группы. Как я могу применить другой цвет к заголовку подгруппы

заранее спасибо

Чанд.


person Hukam    schedule 10.05.2011    source источник
comment
Пожалуйста, просмотрите следующий пост stackoverflow.com/questions/2791365/   -  person Felipe Roche    schedule 15.11.2019


Ответы (1)


Группы не предоставляют много информации, но если у вас есть только один подуровень, вы можете использовать CollectionViewGroup.IsBottomLevel, чтобы выделиться. например

<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>

Шаблонный родитель — это ContentPresenter, а Content — это внутренний групповой класс.

person H.B.    schedule 10.05.2011
comment
Msdn говорит, что вы не можете установить это свойство в XAML. - person Hukam; 11.05.2011
comment
Я не пытался установить это, не так ли? - person H.B.; 20.05.2011
comment
пожалуйста, попробуйте и дайте мне знать :) - person Hukam; 20.05.2011
comment
Это был риторический вопрос, я запускаю это свойство, я никогда его не устанавливал. Кроме того, я попробовал это, когда писал это. - person H.B.; 20.05.2011