我的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;
}
}
但是当我运行应用程序时,数据网格会在列上显示红灯,但列标题文本会消失!
任何想法如何解决这个问题?
答案 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元素周围添加了一个面板。