[英]How to style a particular Column Header
I have 5 columns Table, ScanCount , Logical Reads etc. This is my sorting handler for all columns: 我有5列Table,ScanCount,Logical Reads等。这是我对所有列的排序处理程序:
<Window.Resources>
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander x:Name="exp" IsExpanded="True"
Background="White"
Foreground="Black">
<Expander.Header>
<TextBlock Text="{Binding Name}" />
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type DataGridColumnHeader}">
<EventSetter Event="Click"
Handler="GridViewColumnHeaderClickedHandler"/>
</Style>
</Window.Resources>
<Grid>
<DataGrid x:Name="GridView1"
ItemsSource="{Binding listAggregation}"
CanUserAddRows="False" Margin="0,65,0,46" AllowDrop="True" Drop="Grid_Drop" AutoGenerateColumns="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="Table">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="DataGridColumnHeader"
BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
<EventSetter Event="PreviewMouseMove"
Handler="DataGridHeader_PreviewMouseMove"/>
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel>
<ItemsPanelTemplate>
<DataGridRowsPresenter/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</DataGrid.GroupStyle>
</DataGrid>
<Label x:Name="MyGroupDescriptionsList" HorizontalAlignment="Left" Margin="19,10,0,0" VerticalAlignment="Top" Width="151"
AllowDrop="True" Drop="Label_Drop" Background="#FFE2D8D8" Height="31" QueryContinueDrag="Label_QueryContinueDrag" PreviewMouseMove="Label_Mousemove" Content="Drag Your Header Here" FontWeight="Bold"/>
</Grid>
How can i merge both ?? 我如何合并两者? I just want the column header 'Table'(which is the first column) to be able use this drag-drop and rest all columns to use the sorting.
我只希望列标题“ Table”(这是第一列)能够使用此拖放操作,并保留所有列以使用排序。 Columns are created in code behind.
在后面的代码中创建列。 Any suggestions are welcomed.
任何建议都欢迎。 Thanks!
谢谢!
You can used BasedOn
to inherit default style. 您可以使用
BasedOn
继承默认样式。 But for that to work instead of setting default style explicitly to ColumnHeaderStyle
, declare it under DataGrid resources section. 但是要使其工作而不是将默认样式显式设置为
ColumnHeaderStyle
,请在DataGrid resources部分下声明它。 After that you can used BasedOn to inherit default style. 之后,您可以使用BasedOn继承默认样式。
<DataGrid AutoGenerateColumn="False">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<EventSetter Event="Click"
Handler="GridViewColumnHeaderClickedHandler"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Table">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="DataGridColumnHeader"
BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
<EventSetter Event="PreviewMouseMove"
Handler="DataGridHeader_PreviewMouseMove"/>
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
.........
</DataGrid.Columns>
</DataGrid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.