代碼我有圖片圖像源取決於後面可變
<Image HorizontalAlignment="Left" VerticalAlignment="Top" Source="" Width="20" Height="20" />
和我在代碼隱藏變量布爾ISOK。 如何將它綁定到源屬性,並有條件,當它是真正的源將是「../Shared/Images/ok.png」,當假「../Shared/Images/cancel.png」? 我可以使用觸發器嗎?
代碼我有圖片圖像源取決於後面可變
<Image HorizontalAlignment="Left" VerticalAlignment="Top" Source="" Width="20" Height="20" />
和我在代碼隱藏變量布爾ISOK。 如何將它綁定到源屬性,並有條件,當它是真正的源將是「../Shared/Images/ok.png」,當假「../Shared/Images/cancel.png」? 我可以使用觸發器嗎?
馬蒂的回答是乾淨的,但如果你真的只是感覺像使用觸發器......這樣的事情也可能工作,但正如我所說,馬蒂更清潔。 :)
<Image HorizontalAlignment="Left" VerticalAlignment="Top" Source="" Width="20" Height="20">
<i:Interaction.Triggers>
<ei:DataTrigger Value="False"
Binding="{Binding BooleanValueBinding}">
<ei:ChangePropertyAction PropertyName="Source"
Value="../Shared/Images/cancel.png" />
</ei:DataTrigger>
<ei:DataTrigger Value="True"
Binding="{Binding BooleanValueBinding}">
<ei:ChangePropertyAction PropertyName="Source"
Value="../Shared/Images/ok.png" />
</ei:DataTrigger>
</i:Interaction.Triggers>
</Image>
不需要觸發器。
只需將Image的Source屬性綁定到ViewModel上的一個屬性,該屬性將返回OK圖像或取消圖像。
修改您的代碼,以便每當IsOk更改時,您的按鈕圖像屬性的PropertyChanged事件被觸發。這樣,每當您更改IsOk屬性時,圖像都會自動更新。事情是這樣的:
public bool IsOk
{
get
{
return _isOk;
}
set
{
if (_isOk != value)
{
_isOk = value;
RaisePropertyChanged("IsOk");
RaisePropertyChanged("ButtonImage");
}
}
}
public Image ButtonImage
{
get
{
if (_isOk)
return _okImage;
else
return _cancelImage;
}
}
..然後在你的XAML:
<Image Source="{Binding ButtonImage}" ... />
馬蒂的答案是更清潔,但我記得有像你一樣的東西顯示克里斯。謝謝! – netmajor