Mvvmcross - 从常规活动中显示 mvvmcross 视图模型
Posted
技术标签:
【中文标题】Mvvmcross - 从常规活动中显示 mvvmcross 视图模型【英文标题】:Mvvmcross - Showing mvvmcross viewmodel from regular activity 【发布时间】:2014-06-25 14:42:48 【问题描述】:我目前正在尝试向现有应用程序添加额外的功能,并已开始将 MvvmCross 用于新屏幕,因此我现在手头有一个混合应用程序。我想使用 ViewModel 从旧屏幕导航到新屏幕,并在内存中传递一个对象。我遵循了这里的建议:
Using Notifications on android with MvvmCross
这是我的代码:
var viewModelRequest = MvxViewModelRequest<MyViewModel>.GetDefaultRequest ( );
viewModelRequest.ParameterValues = new Dictionary<string, string> ( );
viewModelRequest.ParameterValues.Add ( "myobject", JsonConvert.SerializeObject ( this.myObject, Formatting.None ) );
var intent = Mvx.Resolve<IMvxAndroidViewModelRequestTranslator>().GetIntentFor ( viewModelRequest );
this.StartActivity ( intent );
当我运行此代码时,它会在尝试解决 IMvxAndroidViewModelRequestTranslator 时引发空对象异常。我快速查看了 mvvmcross 代码,并注意到 InitializeSecondary()(调用 InitializeViewsContainer() 的地方)仅在 InitialieFromSplashScreen() 方法中调用。我的问题是,是不是因为我的启动画面没有从 MvxSplashScrennActivity 继承,所以我的视图容器没有正确初始化?如果是这种情况,我可以手动在某处进行初始化吗?
【问题讨论】:
【参考方案1】:当您的应用从 Setup 类中运行时,您可以使用多种方法尝试初始化事物。参考此处讨论调用的初始响应
protected override void InitializeLastChance();
Platform-specific IoC in MVVMCross
恕我直言,继承或使用内置的 splash 类可能会更容易,以确保您不会遇到更多的问题。
【讨论】:
以上是关于Mvvmcross - 从常规活动中显示 mvvmcross 视图模型的主要内容,如果未能解决你的问题,请参考以下文章