Xceed Datagrid为单个GroupHeader而不是所有GroupHeader设置GroupHeader控制模

本文关键字:GroupHeader 设置 控制 Datagrid 单个 Xceed | 更新日期: 2023-09-27 18:19:55

文档中有一个关于如何设置组头样式的"绝妙"示例。

<Style TargetType="{x:Type xcdg:GroupHeaderControl}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type xcdg:GroupHeaderControl}">
        <Border Background="Orange" BorderThickness="2">
          <StackPanel Orientation="Horizontal">
            <CheckBox IsChecked="{Binding RelativeSource={RelativeSource
                                  TemplatedParent}, Path=Group.IsExpanded}"/>
            <ContentPresenter/>
          </StackPanel>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

问题是,这会将模板全局应用于所有网格和所有组。

我真正想知道的是,如何为1组指定GroupHeaderControl使用的模板?

类似于:(不起作用)

<xcdg:Column Title="Station" FieldName="Station">                         
    <xcdg:Column.GroupConfiguration>
        <xcdg:GroupConfiguration UseDefaultHeadersFooters="False" >                                
            <xcdg:GroupConfiguration.Headers>
                <xcdg:GroupHeaderControl Template="{StaticResource customtableViewGroupHeaderControlTemplate}" />
                <xcdg:GroupHeaderFooterItemTemplate VisibleWhenCollapsed="True" />
            </xcdg:GroupConfiguration.Headers>
        </xcdg:GroupConfiguration>
    </xcdg:Column.GroupConfiguration>
</xcdg:Column>

有人知道如何解决这个问题吗?

Xceed Datagrid为单个GroupHeader而不是所有GroupHeader设置GroupHeader控制模

我几乎是偶然找到了答案。若要单独设置此模板,必须执行以下操作:

在您的资源中添加以下内容:

 <DataTemplate x:Key="GroupByTest">
        <xcdg:GroupHeaderControl Template="{StaticResource MyGroupHeaderControlTemplate}" />
 </DataTemplate>

这样做将允许您设置单个组标头模板。然而,这样做似乎会产生一系列其他必须解决的小问题。