0

我的 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;
    }              
}

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

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

4

1 回答 1

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 元素周围添加了一个面板。

于 2012-12-28T04:00:37.177 回答