1
我想根據動態資源的值切換控件樣式。我可以檢查數據觸發器中動態資源的值
<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
感謝
嘗試此操作時,我遇到同樣的問題。我現在把它改成了一個靜態資源,但現在我得到了一個不同的異常。請參閱編輯問題 – user589195 2013-03-20 14:02:57
這就是我說的,你不能這樣定義DataTrigger。你應該把它放在BookendImageStyle中或者在這裏創建一個新的並且基於它BookendImageStyle – user1064519 2013-03-20 14:34:25
你會怎麼做這個觸發? – tofutim 2015-08-26 03:00:51