【发布时间】:2014-09-13 16:01:13
【问题描述】:
我的班级中有一个布尔属性,比如:
private bool isFolder;
public bool IsFolder{ get; set; }
我在 xaml 中有一张图片:
<Image Source="..">
当 IsFolder 为真时,我希望该图像具有一个 imageSource,而另一个 - 当它为假时。我该怎么做?
提前致谢。
【问题讨论】:
我的班级中有一个布尔属性,比如:
private bool isFolder;
public bool IsFolder{ get; set; }
我在 xaml 中有一张图片:
<Image Source="..">
当 IsFolder 为真时,我希望该图像具有一个 imageSource,而另一个 - 当它为假时。我该怎么做?
提前致谢。
【问题讨论】:
DataTriggers仅用于此目的。
在 IsFolder 为 false 的情况下设置默认值(将其绑定到 NotFolderImage 属性)。如果 IsFolder 值设置为 true,则将源设置为其他值 (在本例中为 FolderImage)。
<Image>
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="{Binding NotFolderImage}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsFolder}" Value="True">
<Setter Property="Source" Value="{Binding FolderImage}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
此外,请确保底层 ViewModel 类正在实现 INotifyPropertyChanged 事件,以便将 IsFolder 属性的更改传播到 UI。
【讨论】: