mvvm - 如何将 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 值?
如果您想尝试一下,这里有一个小样本的链接。
解决方案
推荐阅读
- python - 当我将一个基类用于两个不同的类,并在一个类实例中更改一个变量时,另一个类中的变量也会更改吗?
- javascript - Discord.js 我如何检查一个频道是否可供所有人使用
- javascript - GTM 变量 - 为每个数组成员重复一个代码片段
- apache-nifi - 关于哪个属性使我的 Apache Nifi 处理器无效的反馈(一个通用问题)
- r - R:使用 maptools::elide 缩放阿拉斯加
- regex - 正则表达式匹配表格数据
- sql - 如何使用种子置换 SQL 表?
- c# - 出于某种原因,我的手榴弹没有初始化
- javascript - 将 _id 复制到新的字符串字段中
- python - Python:“AttributeError:dlsym(0x7f874aa5d550,OGR_F_GetFieldAsInteger64):在OSX Big Sur中找不到符号”尽管“MacPorts”