首页 > 解决方案 > 如何将 Xamarin 表单图像绑定到视图模型?

问题描述

如果我在 iOS Assets.xcassets中有一个名为“foo”的图像,并且我想将其分配给此 XAML 使用的视图模型中的绑定属性......

<Image Source="{Binding MyImageSource}" />

我需要在视图模型中做什么才能使其正确加载?

我尝试将属性设置为ImageSource.FromFile("foo"). 我也试过了ImageSource.FromFile("foo.png")。我试过了ImageSource.FromResource("foo.png")。最后,由于ImageSource似乎直接从 重载赋值string,我尝试只分配一个ImageSource字符串值(“foo”)。

这些方法似乎都没有真正从资产中加载图像。

但是,分配是直接在 XAML 中进行的:

<Image Source="foo" />

有没有人知道如何将图像绑定到视图模型?

[编辑]

原因显然是因为我绑定到的视图模型实际上是一个子视图模型(页面的 BindingContext 中的一个属性)。如果我将源属性移动到根 BindingContext 它可以工作。

绑定引擎中是否有一些硬编码的东西需要以不同的方式处理 ImageSource 值?

如果您想尝试一下,这里有一个小样本的链接。

标签: mvvmxamarin.formsimagesource

解决方案


推荐阅读