可见性ValueConverter更新逻辑到MvvmCross v3

时间:2014-01-10 10:30:55

标签: xamarin.android visibility mvvmcross

我将一个较旧的android项目从mvvmcross v2更新为mvvmcross v3。

现在又遇到了一个问题。

能见度不起作用,它什么都不做。

旧解决方案看起来像这样(工作正常):

在Setup.cs中

protected override IEnumerable<Type> ValueConverterHolders
{
     get { return new[] { typeof(Converters) }; }
}

Converters.cs

using Cirrious.MvvmCross.Converters.Visibility;

namespace Test.Droid
{
    public class Converters
    {
        public readonly MvxVisibilityConverter Visibility = new MvxVisibilityConverter();
    }
}

任何.axml(更改LinearLayout的可见性):

 <LinearLayout style="@style/LinearLayoutSmall" local:MvxBind="{'Visibility':{'Path':'TestIsVisible','Converter':'Visibility'}}">



解决方案(不起作用):

在Setup.cs中

protected override List<Type> ValueConverterHolders
{
    get { return new List<Type> { typeof(Converters) }; }
}

Converters.cs

using Cirrious.MvvmCross.Plugins.Visibility;

namespace Test.Droid
{
    public class Converters
    {
        public readonly MvxVisibilityValueConverter Visibility = new MvxVisibilityValueConverter();
    }
}

任何.axml

<LinearLayout style="@style/LinearLayoutSmall" local:MvxBind="Visibility TestIsVisible, Converter=Visibility">

swissbinding语法可能有问题,或者我使用假类? 任何帮助表示赞赏!

更新

我忘记了这些界限:

public override void LoadPlugins(IMvxPluginManager pluginManager)
{
    pluginManager.EnsurePluginLoaded<PluginLoader>();
    pluginManager.EnsurePluginLoaded<Cirrious.MvvmCross.Plugins.Visibility.PluginLoader>();
    base.LoadPlugins(pluginManager);
}

我想这是必要的,但现在我有以下错误: enter image description here

(来自MvxPluginManager类)...... 我检查了所有引用,并在我的主项目和其他地方引用了dll / project * .Visibility.Droid.dll ......

1 个答案:

答案 0 :(得分:1)

如果没有运行和调试代码的完整示例,我无法看到问题所在。一个猜测是它可以在插件设置中进行可见性,但这只是猜测。您的应用的调试跟踪可能会显示有关此内容的一些信息。

或者,简单地尝试设置新项目并获得可见性,然后将该代码与现有应用进行比较可能会更容易。


v3中的值转换器记录在https://github.com/MvvmCross/MvvmCross/wiki/Value-Converters

引用它们的首选方法是让MvvmCross通过反射找到它们 - 请参阅https://github.com/MvvmCross/MvvmCross/wiki/Value-Converters#referencing-value-converters-in-touch-and-droid

部分

示例应用,包括可见性,位于:https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/ValueConversion - 例如https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ValueConversion/ValueConversion.UI.Droid/Resources/Layout/View_Visibility.axml