【问题标题】:Datagrid Column Header TemplatingDatagrid 列标题模板
【发布时间】:2012-07-26 18:38:11
【问题描述】:

我想以一种非常简单的方式对一些标题列进行模板化,但我没有得到我想要的结果。我希望边框填充整个标题,而不仅仅是里面的文本框。现在我自己的控件后面仍然是默认的灰色。

<DataGrid x:Name="grdItems"
    Grid.Row="0"
    CanUserAddRows="False"
    CanUserDeleteRows="False"
    ItemsSource="{Binding Path=Items}"
    CanUserSortColumns="False" AutoGenerateColumns="False" CanUserResizeColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn ItemsSource="{Binding Source={StaticResource GetSignalTypeValues}}" Width="auto" SelectedValueBinding="{Binding SignalType}" >
    <DataGridComboBoxColumn.HeaderTemplate>
        <DataTemplate>
            <Border Background="Orange" >
                <TextBlock Text="Signal Type" />
            </Border>
        </DataTemplate>
    </DataGridComboBoxColumn.HeaderTemplate>
</DataGridComboBoxColumn>

<DataGridTextColumn Width="auto" Binding="{Binding AmplitudeMax}">
    <DataGridTextColumn.HeaderTemplate>
        <DataTemplate>
            <Border Background="Violet">
                <StackPanel>
                    <TextBlock Text="Amplitude" HorizontalAlignment="Center" />
                    <TextBlock Text="-maximum-" HorizontalAlignment="Center" />
                </StackPanel>
            </Border>
        </DataTemplate>
    </DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>

【问题讨论】:

    标签: wpf datagrid


    【解决方案1】:

    如果你只关注列标题的背景色,你可以使用这个:

    <DataGridComboBoxColumn  Width="auto" SelectedValueBinding="{Binding SignalType}" >
        <DataGridComboBoxColumn.HeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="Background" Value="Orange"/>
            </Style>
        </DataGridComboBoxColumn.HeaderStyle>
    

    【讨论】:

    • 基本上这就是我想要做的,但我仍然想在列标题之间保留分隔线。
    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 2016-12-08
    • 1970-01-01
    • 2023-03-22
    • 2011-02-25
    • 1970-01-01
    • 2017-04-30
    • 2014-01-06
    相关资源
    最近更新 更多