在xamarin表单上动态绑定图像源

Mr.*_*per 12 c# binding image xamarin xamarin.forms

我的问题是,我可以将字符串图像绑定到图像源吗?我有多个图像,如果条件,图像将会改变.所以:

Xamal上的Xaml形式:

<Image Source="{Binding someImage}" Aspect="Fill" Grid.Row="2"></Image>
Run Code Online (Sandbox Code Playgroud)

Codebehind c#

   public String someImage;
    public String SomeImage
    {
        set
        {
            if (someImage != value)
            {
                someImage = value;                                        
            }
        }
        get
        {
            return someImage;
        }
    }
Run Code Online (Sandbox Code Playgroud)

InitializeComponent部分:

if(true)
            {
                someImage = "backgroundListViewGren.png";
            }
            else
            {
                someImage = "backgroundListViewRed.png";
            }
Run Code Online (Sandbox Code Playgroud)

图像位于便携式项目的"Images"文件夹中

但是,这不起作用,也许我不会做什么,但我不明白.有解决方案吗

我已经尝试使用ImageSource而不是字符串,但也没有用.

Mav*_*ick 14

我会在这里发布这个答案,因为它是我正在寻找的那个,我怀疑大多数人都是(并且谷歌目前在这里指导你,目前不是非常有用).

如何使用XAML绑定图像:

XAML:

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

然后在ViewModel中,C#:

public string SomeImage
{
    get { return string.Format("prefix-{0}-suffix.png", OtherProperty); }
}
Run Code Online (Sandbox Code Playgroud)

更新,更好,但基本相同的c#你可以使用而不是上面的:

public string SomeImage => $"prefix-{OtherProperty}-suffix.png";
Run Code Online (Sandbox Code Playgroud)

这当然是设置它的最简单的方法,IMO :).

编辑:应该不言而喻,但图像显然应该在Resources每个平台的项目文件夹中.