【问题标题】:MvvmCross binding to ImageResource property on an Android ImageViewMvvmCross 绑定到 Android ImageView 上的 ImageResource 属性
【发布时间】:2014-12-16 19:28:39
【问题描述】:

我一直把头撞在墙上,因为我认为这应该是一个简单的问题。

我正在使用 Xamarin 和 MvvmCross 编写一个 android 应用程序。我有一个 ImageView,我想将资源绑定到它。资源绑定将基于我的视图模型上名为 Function 的字符串属性。值转换器将其转换为 int。我假设我应该使用 ImageResource 属性

所以我正在做以下事情

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    local:MvxBind="ImageResource Function, Converter=MyIconConverter" />

但是这不起作用,我在日志中收到以下错误

MvxBind:Warning: 98.79 无法为函数绑定 ImageResource 创建目标绑定 [0:] MvxBind:Warning: 98.79 无法为函数绑定 ImageResource 创建目标绑定 10-21 15:08:27.506 I/mono-stdout(9440): MvxBind:Warning: 98.79 无法为函数绑定 ImageResource 创建目标绑定

我的 MyIconConverter 是我的 Android 应用程序的一部分(不在核心项目中),因为它是 android 特定的,它从字符串转换为 int,它所做的只是返回一个资源,例如 Resource.Id.Icon

我正在尝试的可能吗,如果是的话,有人知道我做错了什么。如果不可能,我应该怎么做?

任何帮助将不胜感激,但请。如果我正在做的事情是可能的,请在建议替代方案之前先告诉我如何做到这一点

【问题讨论】:

    标签: android data-binding imageview xamarin mvvmcross


    【解决方案1】:

    MvvmCross 带有一堆预先构建的绑定。

    你想用

    local:MvxBind="DrawableId MyIconConverter(Function)"
    

    注意:我使用更简单的语法来调用值转换器。请参阅 ValueConverters 和 ValueCombiners 的函数语法 https://github.com/MvvmCross/MvvmCross/wiki/Databinding

    有关内置数据绑定的完整列表:

    https://github.com/MvvmCross/MvvmCross/blob/bbf9a2ac76e74d9404f4b57036c6e29dfe2cc6c3/Cirrious/Cirrious.MvvmCross.Binding.Droid/MvxAndroidBindingBuilder.cs

    【讨论】:

    • 谢谢。没有更多的头撞,直到我遇到的下一个问题
    猜你喜欢
    • 2017-05-05
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多