Xamarin.android MvvmCross-无法解析ViewModel的类型
这是相关的,但可能保证自己的 我需要能够在ViewModel的相关Android视图中执行命令,特别是在单击操作栏菜单项时。因此,首先我需要访问ViewModel的实例 首先,我在视图的onCreateOptions菜单方法中尝试了以下代码行: …这没用 但是,将以下内容添加到Apps.cs中修复了错误,但导致了其他问题,因为它显然没有为我提供MvvmCross框架必须已在后台初始化的ViewModel实例:Xamarin.android MvvmCross-无法解析ViewModel的类型,xamarin.android,xamarin,mvvmcross,Xamarin.android,Xamarin,Mvvmcross,这是相关的,但可能保证自己的 我需要能够在ViewModel的相关Android视图中执行命令,特别是在单击操作栏菜单项时。因此,首先我需要访问ViewModel的实例 首先,我在视图的onCreateOptions菜单方法中尝试了以下代码行: …这没用 但是,将以下内容添加到Apps.cs中修复了错误,但导致了其他问题,因为它显然没有为我提供MvvmCross框架必须已在后台初始化的ViewModel实例: public override void Initialize() { Cre
public override void Initialize() {
CreatableTypes()
.EndingWith("NewJobViewModel")
.AsTypes()
.RegisterAsSingleton();
}
我显然误解了一些架构和背景中发生的事情,因此如果这是一个基本问题,我很抱歉,但有人能告诉我我做错了什么吗?MvvmCross会自动为您连接视图和视图模型 这会在调用base.OnCreatebundle时自动发生 如果要在视图中访问ViewModel,可以使用ViewModel属性进行访问 但是,由于ViewModel属性是在共享基类中定义的,因此它属于IMvxViewModel类型 要获得类型化的ViewModel,您只需将其强制转换为您的特定类型-例如
var myTypedView = (MyTypedViewModel)ViewModel;
您肯定不想创建Mvx.Resolve尝试创建的新viewmodel,相反,您只想访问当前viewmodel MvvmCross会自动为您连接视图和ViewModel 这会在调用base.OnCreatebundle时自动发生 如果要在视图中访问ViewModel,可以使用ViewModel属性进行访问 但是,由于ViewModel属性是在共享基类中定义的,因此它属于IMvxViewModel类型 要获得类型化的ViewModel,您只需将其强制转换为您的特定类型-例如
var myTypedView = (MyTypedViewModel)ViewModel;
您肯定不想创建Mvx.Resolve尝试创建的新viewmodel,相反,您只想访问当前viewmodel 感谢Stuart,它解决了我的问题,现在我已经成功地将操作栏的单击事件连接到ViewModel中的命令。附言:我发现你们的N+1系列视频是学习MvvmCross的绝佳方式。继续努力:-Graham。但是对于一些场景,比如选项卡视图,HomeViewModel有一些子视图模型,每个选项卡一个。是否新建每个子视图模型,并将所有依赖项传递给HomeViewModel?为什么不在HomeViewModel构造函数中使用Mvx.Resolve呢?感谢Stuart,它解决了我的问题,现在我已经成功地将操作栏的单击事件连接到ViewModel中的命令。附言:我发现你们的N+1系列视频是学习MvvmCross的绝佳方式。继续努力:-Graham。但是对于一些场景,比如选项卡视图,HomeViewModel有一些子视图模型,每个选项卡一个。是否新建每个子视图模型,并将所有依赖项传递给HomeViewModel?为什么不在HomeViewModel构造函数中使用Mvx.Resolve?
var myTypedView = (MyTypedViewModel)ViewModel;