[英]Matching ViewModel and View in MVVMCross
我有一个MVVM Cross应用程序,我试图弄清楚为什么未显示初始屏幕(这在WinRT上)。
以下代码看起来像它加载了ViewModel MainViewModel
:
var setup = new Setup(rootFrame);
setup.Initialize();
var start = Cirrious.CrossCore.Mvx.Resolve<Cirrious.MvvmCross.ViewModels.IMvxAppStart>();
start.Start();
但是,永远不会调用MainViewModel
的Start
方法。 原因似乎是输出中的此错误:
Error seen during navigation request to MainViewModel - error KeyNotFoundException: Could not find view for MyApp.PCL.ViewModels.MainViewModel
因此,这是我对问题的猜测:它正在寻找MyApp.PCL.ViewModels.MainView
,显然,这并不存在。 该视图位于: MyApp.Views.MainView
。 我的假设正确吗?如果是,我该如何说服MVVMCross查找正确的位置?
编辑:
从MyApp.Windows
WinRT应用程序调用Setup
方法。
protected override IMvxApplication CreateApp()
{
return new MyApp.PCL.App();
}
MyApp.PCL是从MyApp.Windows
引用的可移植类库。 MyApp.PCL
包含ViewModel,而MyApp.Windows
包含视图。
我试图覆盖Start()
:
public class MainViewModel
: MvxViewModel
{
public override void Start()
{
System.Diagnostics.Debugger.Break();
base.Start();
}
但这永远不会受到打击。
Do! 在这里,但我将发布解决方案; 我的视图不是使用MvxStoreView,而是使用标准的StoreView。
解决方案是按以下方式更改视图:
...
xmlns:views="using:Cirrious.MvvmCross.WindowsStore.Views"
...
<views:MvxStorePage
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.