开发者

WPFdatagrid - how to use(give) different colors while grouping?

开发者 https://www.devze.com 2023-04-06 00:46 出处:网络
开发者_C百科I am using WPF datagrid by codeplex. I have a wpf grid with grouping features. I want the grouped region in different colors.

开发者_C百科I am using WPF datagrid by codeplex.

I have a wpf grid with grouping features. I want the grouped region in different colors. The screenshot is as follows:

WPFdatagrid - how to use(give) different colors while grouping?

Can different colors be assigned during grouping? If yes how do I achieve this in WPF datagrid?


Hope this helps...

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

The data triggers above check which value we have created the groups upon and accordingly assigns data grid row background colors.

So first group represents all values under text "1" (LightGreen) and next group is grouped under value 2 (LightPink).

0

精彩评论

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

关注公众号