【问题标题】:Visibility ValueConverter Update Logic to MvvmCross v3Visibility ValueConverter 更新逻辑到 MvvmCross v3
【发布时间】:2014-01-29 06:52:12
【问题描述】:

我将一个较旧的 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);
}

我想这是必要的,但现在我遇到了以下错误:

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

【问题讨论】:

    标签: xamarin.android visibility mvvmcross


    【解决方案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

    【讨论】:

    • 感谢我查看了链接,我也更新了我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    相关资源
    最近更新 更多