我有图片
<Image HorizontalAlignment="Left" VerticalAlignment="Top" Source="" Width="20" Height="20" />
我在代码隐藏中有变量bool IsOk。 如何将它绑定到source属性并且具有以下条件:当它是真正的源时将是“../Shared/Images/ok.png”并且当错误为“../Shared/Images/cancel.png”时? 我可以使用触发器吗?
答案 0 :(得分:4)
无需触发器。
将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}" ... />
答案 1 :(得分:1)
<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>