MvvmCross Android BackgroundColor未绑定到ViewModel

时间:2013-11-24 01:07:46

标签: android mvvmcross

我很难获得一个基本的MvvmCross Android示例,其中RelativeLayout的BackgroundColor绑定到ViewModel。

应用程序运行,出现一些文本,我希望我的背景变黄。然而,背景颜色保持不变。

我在我的Core和Droid项目以及MvvmCross - Color Plugin中都包含了Hot Tuna初学者包。我的Droid项目自动获得了ColorPluginBootstrap.cs

布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    local:MvxBind="BackgroundColor NativeColor(BackgroundColor)">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:textSize="20sp"
            android:gravity="center"
            android:text="Text to make sure the layout inflates" />
</RelativeLayout>

视图模型

public class ViewModel : MvxViewModel
{
    RGBAColorConverter _rgbaConverter;
    public ViewModel()
    {
        var color = "#ffedff00";
        _rgbaConverter = new RGBAColorConverter();
        BackgroundColor = _rgbaConverter.Convert(color);
    }

    private MvxColor _backgroundColor;
    public MvxColor BackgroundColor
    {
        get { return _backgroundColor; }
        set
        {
            _backgroundColor = value;
            RaisePropertyChanged(() => BackgroundColor);
        }
    }
}

绑定工作 - 我尝试使用字符串的其他ViewModel属性来进行简单的文本绑定。所有这一切似乎都很好。

我在BackgroundColor ViewModel属性的getter上放置了调试断点,我可以按预期看到MvxColor。

我的颜色装订方案缺少什么?

  • 我在Setup.cs
  • 中没有做任何额外的事情
  • 我没有在我的Droid项目中创建任何其他布线课程
  • 我还没有创建任何特定于Android的颜色转换器实现

1 个答案:

答案 0 :(得分:4)

我刚刚编写了一个测试应用程序,它似乎对我有用 - 使用3.0.14 nuget二进制文件。

此外,ValueConverters测试应用程序似乎正常 - https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/ValueConversion

看看你的样本,我唯一能想到的就是你可能只测试透明色(RGBA#ffedff00的Alpha = 0)

如果不是这样,你可以发布更多 - 也许是某个地方的完整样本?