我正在尝试使用MvxValueConverter为Android和iOS实现转换器。我能够使用我的converter绑定一个字符串值。但是如果我尝试使用相同的转换器绑定颜色(MvxColor)或可见性(MvxVisibility),它就不起作用。
pulic class TwoWayConverter : MvxValueConverter<string, MvxColor>
{
protected override MvxColor Covert (string value, Type targetType, object parameter, CaultureInfo culture )
{
return new MvxColor (255,42,0);
}
}
结合:
<TextView local:MvxBind="TextColor color, Converter=TwoWay" />
答案 0 :(得分:0)
TextColor
和BackgroundColor
绑定目标未内置到MvvMCross核心库中。它们是Color插件的一部分:https://github.com/MvvmCross/MvvmCross-Plugins/blob/master/Color/Readme.md
您可以通过在NuGet包管理器中搜索 MvvmCross.Plugin.Color 或通过
从命令行安装它来使用NuGet安装此插件Install-Package MvvmCross.Plugin.Color
此插件还提供了将字符串转换为颜色的转换器(例如MvxRGBAValueConverter
):
查看强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Colored Text"
local:MvxBind="TextColor Color, Converter=RGBA"/>
<EditText
local:MvxBind="Text Color"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<强>视图模型强>
public class FirstViewModel : MvxViewModel
{
private string color = "FF00FF";
public string Color
{
get { return color; }
set { SetProperty(ref color, value); }
}
}
有关详情,请参阅:https://github.com/MvvmCross/MvvmCross/wiki/Value-Converters#the-mvx-color-valueconverters