我想根据动态资源的值切换控件样式。
<Image x:Name="leftImg" Stretch="Fill" Style="{StaticResource BookendImageStyle}" >
<Image.Triggers>
<DataTrigger Binding="{DynamicResource BlackAndWhite}" Value="True">
<Setter TargetName="leftImg" Property="Style" Value="{StaticResource BookendImageStyleBW}" />
</DataTrigger>
</Image.Triggers>
</Image>
这编译得很好,但在运行时我得到以下异常:
A 'DynamicResourceExtension' cannot be set on the 'Binding' property of type 'DataTrigger'. A 'DynamicResourceExtension' can only be set on a DependencyProperty of a DependencyObject.
我试图做的事情可能吗?我只是有错误的语法吗?我应该以不同的方式来做吗?
编辑 我已将代码更改为:
<DataTemplate x:Key="ViasTemplate">
<StackPanel Orientation="Horizontal">
<Border Padding="{Binding ElementName=templateTest, Path=DataContext.GridRow.LeftBondIndent}" Width="50">
<Image x:Name="leftImg" Stretch="Fill" Style="{StaticResource BookendImageStyle}" >
<Image.Triggers>
<DataTrigger Binding="{Binding Source={StaticResource BlackAndWhite}}" Value="True">
<Setter TargetName="leftImg" Property="Style" Value="{StaticResource BookendImageStyleBW}" />
</DataTrigger>
</Image.Triggers>
</Image>
但现在得到这个例外:
Triggers collection members must be of type EventTrigger
谢谢