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>
有人知道如何解决这个问题吗?
我几乎是偶然找到了答案。若要单独设置此模板,必须执行以下操作:
在您的资源中添加以下内容:
<DataTemplate x:Key="GroupByTest">
<xcdg:GroupHeaderControl Template="{StaticResource MyGroupHeaderControlTemplate}" />
</DataTemplate>
这样做将允许您设置单个组标头模板。然而,这样做似乎会产生一系列其他必须解决的小问题。