我的WPF DataGrid ThisAddIn_Startup
s'内容出现了一个奇怪的问题。样式的XAML如下所示:
Header
错误和警告图标应位于这些类型的每一行上,标准行为空白。但是,输出看起来像这样:
每个触发器似乎只显示一次图标,但是当行着色正确时,触发器显然会触发。
Snoop显示图像根本没有插入到其他<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Type, Converter={StaticResource EnumToStringConverter}}" Value="Default">
<Setter Property="Background" Value="White"/>
</DataTrigger>
<DataTrigger Binding="{Binding Type, Converter={StaticResource EnumToStringConverter}}" Value="Error">
<Setter Property="Background" Value="#F2DEDE"/>
<Setter Property="Header">
<Setter.Value>
<Image Source="{StaticResource IconError}" Width="16" Height="16"></Image>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Type, Converter={StaticResource EnumToStringConverter}}" Value="Warning">
<Setter Property="Background" Value="#FCF8E3"/>
<Setter Property="Header">
<Setter.Value>
<Image Source="{StaticResource IconWarning}" Width="16" Height="16"></Image>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
中。
当用路径替换资源图像时,以及用Header
元素完全替换图像时,仍然会发生这种情况。
这里发生了什么?有没有更好的方法我错过了?
编辑:对于发现此事后的任何人,TextBlock
图标为StaticResource
个实例,而不是路径。