我很难获得一个基本的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
答案 0 :(得分:4)
我刚刚编写了一个测试应用程序,它似乎对我有用 - 使用3.0.14 nuget二进制文件。
此外,ValueConverters测试应用程序似乎正常 - https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/ValueConversion
看看你的样本,我唯一能想到的就是你可能只测试透明色(RGBA#ffedff00的Alpha = 0)
如果不是这样,你可以发布更多 - 也许是某个地方的完整样本?