動的リソースの値に基づいてコントロール スタイルを切り替えたいと考えています。
<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
ありがとう