我一直在撞墙,因为我认为应该是一个容易出问题的问题。
我正在使用Xamarin和MvvmCross编写一个Android应用程序。我有一个ImageView,我想绑定一个资源。资源绑定将基于我的viewmodel上名为Function的字符串属性。值转换器将其转换为int。我假设我应该使用ImageResource属性
所以我正在做以下
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
local:MvxBind="ImageResource Function, Converter=MyIconConverter" />
但是这不起作用,我在日志
中收到以下错误MvxBind:警告:98.79无法为绑定ImageResource for Function创建目标绑定 [0:] MvxBind:警告:98.79无法为绑定ImageResource for Function创建目标绑定 10-21 15:08:27.506 I / mono-stdout(9440):MvxBind:警告:98.79无法为绑定ImageResource for Function创建目标绑定
我的MyIconConverter是我的Android应用程序的一部分(不在核心项目中),因为它是特定于android的,它从字符串转换为int,它所做的就是返回一个资源,例如Resource.Id.Icon
我正在尝试的是什么,如果有的话,任何人都知道我做错了什么。如果不可能,我应该怎么做?
任何帮助将不胜感激,但请。如果我正在做的事情是可能的,请在建议替代方案之前先告诉我如何以这种方式做到这一点
答案 0 :(得分:2)
MvvmCross带有一堆预先构建的绑定。
您想要使用
local:MvxBind="DrawableId MyIconConverter(Function)"
注意:我使用更简单的语法来调用值转换器。请参阅https://github.com/MvvmCross/MvvmCross/wiki/Databinding
上的 ValueConverters和ValueCombiners的功能语法有关内置数据绑定的完整列表: