【发布时间】: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