wpf图像源取决于对象属性

时间:2014-07-22 17:35:00

标签: wpf image binding

我班上有一个布尔属性,比如说:

private bool isFolder;
public bool IsFolder{ get; set; }

我在xaml中有一张图片:

<Image Source="..">

我希望那个图像在IsFolder为真时有一个imageSource而另一个 - 当它是假的时候。我怎么能这样做?

提前致谢。

1 个答案:

答案 0 :(得分:4)

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。