我更新了一箇舊的android項目從mvvmcross v2到mvvmcross v3。可見性ValueConverter更新邏輯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語法可能有問題,或者我使用了錯誤的類? 任何幫助表示讚賞!
UPDATE
我忘了這幾行:
public override void LoadPlugins(IMvxPluginManager pluginManager)
{
pluginManager.EnsurePluginLoaded<PluginLoader>();
pluginManager.EnsurePluginLoaded<Cirrious.MvvmCross.Plugins.Visibility.PluginLoader>();
base.LoadPlugins(pluginManager);
}
我猜它必要的,但現在我有以下錯誤:
(從MvxPluginManager類).. 。 我檢查了所有引用,並在我的主項目和其他地方引用了dll/project * .Visibility.Droid.dll ...
謝謝我看了一下鏈接,我也更新了我的問題 – eMi
好的我修復了這個問題! – eMi