-1
我知道已經存在一些問題,但我無法解決他們的問題。使用數據模板切換圖像
問題:我嘗試使用數據模板更改圖像,但僅顯示默認圖像。
代碼: 我的XAML代碼是這樣的:
<Window.Resources>
<DataTemplate x:Key="MultiTemplate">
<Image Height="17" Width="17">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="{svg2Xaml:SvgImage VideoControllerTester;component/Resources/Start.svg}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MultiTrigger}" Value="start">
<Setter Property="Source" Value="{svg2Xaml:SvgImage VideoControllerTester;component/Resources/Start.svg}"/>
</DataTrigger>
<DataTrigger Binding="{Binding MultiTrigger}" Value="stop">
<Setter Property="Source" Value="{svg2Xaml:SvgImage VideoControllerTester;component/Resources/Stop.svg}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</Window.Resources>
<ContentControl ContentTemplate="{DynamicResource MultiTemplate}"/>
在後面的代碼,我設置MultiTrigger = 「啓動」 或 「停止」。
問題:我可以使用內容控制顯示圖像嗎?或者我用數據模板做一些愚蠢的事情?
編輯:
public string MultiTrigger
{
get { return _multiTrigger; }
set
{
_multiTrigger = value;
RaisePropertyChanged();
}
}
ContentControl的DataContext應設置爲具有MultiTrigger屬性的對象。 MultiTrigger屬性設置器應該觸發一個PropertyChanged事件。 – Clemens
......或者,如果'MultiTrigger'是你窗口類的一個屬性,你必須使用'RelativeSource = {RelativeSource AncestorType = Window}'來綁定它。 –
除此之外,您實際上並不需要具有DataTemplate的ContentControl。您還可以將圖像樣式作爲資源並直接將其應用於圖像控件。 – Clemens