WPF图像源取决于对象属性

Mik*_*ike 1 wpf binding image

我的课堂上有一个布尔型属性,例如:

private bool isFolder;
public bool IsFolder{ get; set; }
Run Code Online (Sandbox Code Playgroud)

我在xaml中有一张图片:

<Image Source="..">
Run Code Online (Sandbox Code Playgroud)

我希望当IsFolder为true时该图像具有一个imageSource,而为false时具有另一个imageSource。我怎样才能做到这一点?

提前致谢。

Roh*_*ats 5

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>
Run Code Online (Sandbox Code Playgroud)

另外,请确保基础ViewModel类正在实现INotifyPropertyChanged事件,以便将IsFolder属性中的更改传播到UI。