gpt4 book ai didi

wpf - DataGridTextColumn 标题数据模板

转载 作者:行者123 更新时间:2023-12-04 13:32:03 24 4
gpt4 key购买 nike

这可能(希望)有一个微不足道或非常简单的答案。

假设我想要为我的 DataGrid 自定义标题.我可以使用 DataTemplate像这样:

<DataGridTextColumn Binding="{Binding Name}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="Header Text" TextWrapping="Wrap"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>

但是,如果有很多列,那么能够使用类似的东西就不那么麻烦了
<DataGridTextColumn Binding="{Binding Name}">
HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
</DataGridTextColumn>

在哪里 ColumnHeaderTemplate是我的习惯 DataTemplate .我的问题是如何将“标题文本”传递给 DataTemplate ?

最佳答案

你可以通过绑定(bind)TextBlock.Text您可以对 DataGrid 中的所有列标题执行此操作通过更改 ContentTemplate标题是您的自定义TextBlock然后设置Header要显示的文本。它也适用于自动生成的列

<DataGrid ...>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" TextWrapping="Wrap"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Header Text">
</DataGrid.Columns>
</DataGrid>

或者也可以按列执行,只需更改 TextBlock.Text在你的标题模板中使用绑定(bind),如上
<TextBlock Text="{Binding}" TextWrapping="Wrap"/>

然后您的列可能如下所示:
<DataGridTextColumn 
Binding="{Binding Name}"
HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
Header="Header Text"/>

关于wpf - DataGridTextColumn 标题数据模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26692234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com