WPFdatagrid - как использовать (дать) разные цвета при группировке? - PullRequest
1 голос
/ 19 сентября 2011

Я использую сетку данных WPF по codeplex.

У меня есть сетка wpf с функциями группировки.Я хочу сгруппировать регион в разные цвета.Снимок экрана выглядит следующим образом: enter image description here

Можно ли назначать разные цвета во время группировки?Если да, как мне добиться этого в таблице данных WPF?

1 Ответ

1 голос
/ 19 сентября 2011

Надеюсь, это поможет ...

<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>
                    <Expander.Header>
                       <StackPanel Orientation="Horizontal">
                          <TextBlock Text="{Binding Path=Name}" />
                          <TextBlock Text=" ("/>
                          <TextBlock Text="{Binding Path=ItemCount}"/>
                          <TextBlock Text=" "/>
                          <TextBlock Text="Items"/>
                          <TextBlock Text=")"/>
                       </StackPanel>
                     </Expander.Header>
                     <ItemsPresenter>
                        <ItemsPresenter.Resources>
                           <Style TargetType="{x:Type toolkit:DataGridRow}">
                              <Style.Triggers>
                                 <DataTrigger
                                    Binding="{Binding RelativeSource=
                                      {RelativeSource AncestorType={x:Type 
                                        GroupItem}}, Path=DataContext.Name}"
                                    Value="1">
                                   <Setter Property="Background"
                                           Value="LightGreen"/>
                                 </DataTrigger>
                                 <DataTrigger
                                    Binding="{Binding RelativeSource=
                                      {RelativeSource AncestorType={x:Type 
                                        GroupItem}}, Path=DataContext.Name}"
                                    Value="2">
                                   <Setter Property="Background"
                                           Value="LightPink"/>
                                 </DataTrigger>
                               </Style.Triggers>
                             </Style>
                           </ItemsPresenter.Resources>
                         </ItemsPresenter>
                       </Expander>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
   </GroupStyle.ContainerStyle>
</GroupStyle>

Приведенные выше триггеры данных проверяют, на каком значении мы создали группы, и соответственно назначают цвета фона строки сетки данных.

Таким образом, первая группа представляет все значения в тексте «1» (LightGreen), а следующая группа - в значении 2 (LightPink).

...