无法使用MvxBind

时间:2017-11-23 19:30:12

标签: c# android xamarin.android mvvmcross

我正在尝试更改RecyclerView的项目颜色。下面的代码仅显示RelativeLayout,它是项目布局的根布局。

我有以下代码:

(项目)布局:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/item_listitem"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:orientation="horizontal"
    android:paddingTop="2dp"
    android:paddingBottom="2dp"
    android:paddingStart="@dimen/margin_left_shoppinglistitems"
    android:paddingEnd="@dimen/margin_medium"
    local:MvxBind="BackgroundColor NativeColor(Background)">

  ...

</RelativeLayout>

视图模型:

public class ListItem : TableData, IListItem
{
    ...            
    public MvxColor Background { get { return new MvxColor(255,189,69,128); } }
    ...
}

我已将MvvmCross.Plugin.Color添加到Droid和Core项目中。我不知道为什么这不起作用?我可以看到正在访问的Background属性但是颜色没有设置为设置的测试值(将来我希望颜色基于另一个boolean属性)。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

检查您是否已安装插件颜色并已初始化。我以这种方式使用绑定: local:MvxBind =“BackgroundColor Background,Converter = NativeColor”

答案 1 :(得分:0)

我刚刚测试了你的代码,它似乎工作正常。颜色声明是正确的,绑定也是正确的。我非常怀疑你所展示的代码中存在的问题。确保使用最新的颜色包(5.5.0.0)。我想你的列表在应用程序中显示?也许发布你的细胞的完整xaml布局。

enter image description here