単純なバインディングで複数のViewModelを使用する可能性はありますか? アイデアは、各アクティビティに対して1つのViewModelを持つことです。単純なバインディングで複数のViewModelを使用するには
敬具
ニルス
私はhttps://github.com/slodge/MvvmCross/tree/master/Sample%20-%20SimpleDialogBinding/SimpleBinding/SimpleDroidに基づいて2つの異なるのviewmodelsでテストしてみましたが、いくつかの問題があるように思えます。
私の構造は次のようになります。
Activity1 Activity2
| |
| |
| |
ViewModel1 ViewModel2
両方のactivitesはMvxSimpleBindingActivityから継承します。
プログラムを実行すると、MvxBaseSetupからSystem.ArgumentExceptionがスローされます。これら二つの異なるのviewmodelsに問題があり、なぜ私は本当に理解していない
protected IDictionary<Type, Type> GetViewModelViewLookup(Assembly assembly, Type expectedInterfaceType)
{
var views = from type in assembly.GetTypes()
where !type.IsAbstract
&& expectedInterfaceType.IsAssignableFrom(type)
&& !type.Name.StartsWith("Base")
let viewModelPropertyInfo = type.GetProperty("ViewModel")
where viewModelPropertyInfo != null
let viewModelType = viewModelPropertyInfo.PropertyType
select new { type, viewModelType };
return views.ToDictionary(x => x.viewModelType, x => x.type);
}
: それは重要な部分です。