无法解析类型mvvmcross.platform.ui.imvxnativecolor



我正在尝试使用MvvmCross.Plugin.Color库,以便我可以使用转换器进行颜色。这是我的转换器:

public class MyColorValueConverter : MvxColorValueConverter<bool>
{
    protected override MvxColor Convert(bool value, object parameter, CultureInfo culture)
    {
        return value ? new MvxColor(19, 119, 51) : new MvxColor(171, 8, 16);
    }
}

和.xml:

<MyView
    android:layout_width="match_parent"
    android:layout_height="40dp"
    local:MvxBind="BackgroundColor MyColor(MyBool)" />

但是,当我提高MyBool的属性变更时,我会得到此消息的例外:

mvvmcross.platform.exceptions.mvxiocresolvesception:失败 解析类型mvvmcross.platform.ui.imvxnativecolor at mvvmcross.platform.ioc.mvxsimpleioccontainer.strove

确保插件针对IOC容器注册并安装在平台项目以及您的核心项目中。

通常可以通过插件引导类别完成。在平台项目中安装MvvmCross.Plugin.Color时,通常包括其中。但是,如果您通过project.json使用Nuget,则不包括其他引导类别。

创建一个Android项目根和ColorPluginBootstrap.cs

的文件夹Bootstrap
using MvvmCross.Platform.Plugins;
namespace {{Your name space}}.Bootstrap
{
    public class ColorPluginBootstrap
        : MvxPluginBootstrapAction<MvvmCross.Plugins.Color.PluginLoader>
    {
    }
}

您也可以将其添加到Android项目的MvxAndroidSetup中:

protected override IEnumerable<Assembly> ValueConverterAssemblies
{
    get
    {
        var toReturn = base.ValueConverterAssemblies.ToList();
        toReturn.Add(typeof(MvxNativeColorValueConverter).Assembly);
        return toReturn;
    }
}

最新更新