Xceed Datagrid为单个GroupHeader而不是所有GroupHeader设置GroupHeaderControl模板

时间:2014-08-28 13:23:09

标签: c# wpf xaml wpftoolkit xceed-datagrid

文档中有一个关于如何设置组头样式的“精彩”示例。

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

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

1 个答案:

答案 0 :(得分:0)

我几乎意外地找到了答案。要单独设置此模板,您必须执行以下操作:                                                                                                                                                                                                                                                     

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

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

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