Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# xaml中的图像源取决于代码隐藏变量_C#_Image_Xaml - Fatal编程技术网

C# xaml中的图像源取决于代码隐藏变量

C# xaml中的图像源取决于代码隐藏变量,c#,image,xaml,C#,Image,Xaml,我有形象 <Image HorizontalAlignment="Left" VerticalAlignment="Top" Source="" Width="20" Height="20" /> 我在代码背后有变量bool IsOk。 如何将其绑定到source属性,并设置条件,即当它为true时,源将为“./Shared/Images/ok.png”,当为false时,源将为“./Shared/Images/cancel.png”? 我可以用它来触发吗?不需要触发器 只需

我有形象

<Image HorizontalAlignment="Left"  VerticalAlignment="Top" Source="" Width="20" Height="20" />

我在代码背后有变量bool IsOk。 如何将其绑定到source属性,并设置条件,即当它为true时,源将为“./Shared/Images/ok.png”,当为false时,源将为“./Shared/Images/cancel.png”? 我可以用它来触发吗?

不需要触发器

只需将图像的源属性绑定到ViewModel上返回ok图像或cancel图像的属性

修改您的代码,以便每当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}" ... />

无需触发器

只需将图像的源属性绑定到ViewModel上返回ok图像或cancel图像的属性

修改您的代码,以便每当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}" ... />

马蒂的答案是干净的,但如果你真的想使用触发器……类似的方法也可能奏效,但正如我所说,马蒂的答案更干净。:)


马蒂的答案是干净的,但如果你真的想使用触发器……类似的方法也可能奏效,但正如我所说,马蒂的答案更干净。:)



Marty的答案更清晰,但我想让你给Chris看一样的东西。谢谢马蒂的回答更清晰,但我想让你给克里斯看一样的东西。谢谢