我开发了一个基于Xamarin for iOS和Andsroid的应用程序,使用mvvmcross . 2周前Xamarin宣布了Xamarin.Forms . 是否有人成功将mamavmcross的Xamarin移植到Camarin.Forms与mvvmcross?我想重用我的大部分代码,我正在使用:Messenger,Location,SQLite等 .
如果有人可以提供样本.sln与一些Xamarin.Forms和mvvmcross集成,那将是很好的 . 我认为mvvmcross的开发人员正在努力发布关于这个问题的另一个视频(#43?),但我不确定 .
2 回答
在github上有来自Cheesebaron的样本:https://github.com/Cheesebaron/Xam.Forms.Mvx
Cheesebaron提供了将这些世界结合在一起的非常好的例子 .
Ninja Coder VS Extension的创建者Adrian Sudbury计划很快在扩展中发布Xam.Forms MvvmCross选项 .
我在Cheesebaron的解决方案中错过了一件重要的事情 . 您无法将依赖项注入ContentPages(您可能会认为这是有道理的) . 这里的一个用例是MvvmCross Messenger PlugIn . 例如,如果要向View发送消息以在登录失败时显示警告对话框等 .
Cheesebaron的MvxPresenterHelper类将ViewModels与ContentPages粘合在一起 . 但是该类没有使用MvvmCross(Mvx)提供的IoC容器,并且自己也在进行反射过程,没有提供将依赖注入视图的能力 .
我重写了Helper类以使用MvvmCross IoC容器本身 . 您仍然可以在不更改助手代码的情况下使用other containers . 反射将被最小化,因为您不需要扫描整个程序集,只需要扫描存储页面的命名空间 .
MvxPresenterHelper.cs
请注意App.PageNamespace属性 . 它存储ContentPages的特定命名空间 .
您需要在 App.cs 中注册您的页面