是否可以采取这样的方式?
<DataGridTextColumn.Header>
<StackPanel Orientation="Horizontal">
<Label Content="BlahBlahBlah"/>
<Expander x:Name="Blah_Filter"/>
</StackPanel>
</DataGridTextColumn.Header>
并使其成为一种样式,这样我就不必在每一列中都键入它。如果可能的话,我也想分别命名各列。通常,我们会提供任何帮助。
答案 0 :(得分:1)
您可以使用类似
的标题来更改标题ContentTemplate
<Window.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}"
x:Key="ColumnHeaderTemplate">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding}" />
<Expander />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Column1Content}"
HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
Header="BlahBlahBlah1" />
<DataGridTextColumn Binding="{Binding Column2Content}"
HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
Header="BlahBlahBlah2" />
</DataGrid.Columns>
</DataGrid>
其中Column1Content
和Column2Content
是对单元格数据的绑定,而BlahBlahBlah1
和BlahBlahBlah1
是标题。