是否有可能通过简单的绑定使用多个 ViewModel?我们的想法是为每个 Activity 拥有一个 ViewModel。
此致
尼尔斯
我尝试使用基于https://github.com/slodge/MvvmCross/tree/master/Sample%20-%20SimpleDialogBinding/SimpleBinding/SimpleDroid的两种不同的 ViewModel 进行测试,但似乎存在一些问题。
我的结构如下所示:
Activity1 Activity2
| |
| |
| |
ViewModel1 ViewModel2
两个 Activity 都继承自 MvxSimpleBindingActivity。
当我运行程序时,MvxBaseSetup 会抛出 System.ArgumentException。这是关键部分:
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);
}
我真的不明白为什么这两个不同的 ViewModel 会出现问题。