我有一个MVVM Cross应用程序,我试图弄清楚为什么初始屏幕没有显示(这是在WinRT上)。
以下代码看起来像加载了ViewModel MainViewModel
:
var setup = new Setup(rootFrame);
setup.Initialize();
var start = Cirrious.CrossCore.Mvx.Resolve<Cirrious.MvvmCross.ViewModels.IMvxAppStart>();
start.Start();
但是,Start
的{{1}}方法永远不会被调用。原因似乎是输出中出现此错误:
MainViewModel
所以,我在这里猜测问题:它正在寻找Error seen during navigation request to MainViewModel - error KeyNotFoundException: Could not find view for MyApp.PCL.ViewModels.MainViewModel
,显然,这并不存在。视图位于:MyApp.PCL.ViewModels.MainView
。我的假设是否正确,如果是这样,我怎样才能说服MVVMCross找到正确的位置?
编辑:
从MyApp.Views.MainView
WinRT应用程序调用{{1}}方法。
Setup
MyApp.PCL是一个可从MyApp.Windows
引用的可移植类库。
protected override IMvxApplication CreateApp()
{
return new MyApp.PCL.App();
}
包含ViewModel,MyApp.Windows
包含视图。
我试图覆盖MyApp.PCL
:
MyApp.Windows
但这永远不会被击中。
答案 0 :(得分:1)
Masse Doh!在这里,但我会发布解决方案;我的观点不是使用MvxStoreView,而是使用标准的StoreView。
解决方案是按如下方式更改视图:
...
xmlns:views="using:Cirrious.MvvmCross.WindowsStore.Views"
...
<views:MvxStorePage