xaml 中的图像源取决于变量背后的代码

net*_*jor 0 c# xaml image

我有图片

<Image HorizontalAlignment="Left"  VerticalAlignment="Top" Source="" Width="20" Height="20" />
Run Code Online (Sandbox Code Playgroud)

我在代码隐藏中有变量 bool IsOk 。如何将它绑定到源属性并有条件,当它为 true 时,源将为“../Shared/Images/ok.png”,当为 false 时为“../Shared/Images/cancel.png”?我可以使用它的触发器吗?

Mar*_*ill 5

不需要触发器。

只需将图像的 Source 属性绑定到 ViewModel 上返回确定图像或取消图像的属性即可。

修改您的代码,以便每当 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

..然后在您的 XAML 中:

<Image Source="{Binding ButtonImage}" ... />
Run Code Online (Sandbox Code Playgroud)