如何设置datagrid columnheader以显示图标和文本?

时间:2012-12-28 03:41:54

标签: wpf templates datagrid columnheader

我的WPF应用程序中有一个数据网格,我想在某些列上显示一个红灯图标,以证明该列缺少某些数据。这是我在XAML中的窗口资源:

<DataTemplate x:Key="RedTemp">
    <Image Source="/MyApp;component/Images/red.png"
           Height="9"
           Width="9"
           HorizontalAlignment="Right" />
</DataTemplate>

这就是我从后面的代码中调用它的方式:

foreach (DataGridColumn y in grid.Columns)
{
    if (Missing== 1)
    {
        y.HeaderTemplate = FindResource("RedTemp") as DataTemplate;
    }              
}

但是当我运行应用程序时,数据网格会在列上显示红灯,但列标题文本会消失!

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该修改您的DataTemplate,使其具有带文本的TextBlock,例如:

<DataTemplate x:Key="RedTemp">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <TextBlock Text="{TemplateBinding Content}"  />
        <Image Source="/MyApp;component/Images/red.png"
               Height="9"
               Width="9"
               HorizontalAlignment="Right"
               Grid.Column="1"
               />
     </Grid>
</DataTemplate>

我没有测试过这个。

编辑:在2个UI元素周围添加了一个面板。