在MVVMCross中匹配ViewModel和View

时间:2014-06-17 07:24:33

标签: c# mvvm windows-runtime 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();

但是,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

但这永远不会被击中。

1 个答案:

答案 0 :(得分:1)

Masse Doh!在这里,但我会发布解决方案;我的观点不是使用MvxStoreView,而是使用标准的StoreView。

解决方案是按如下方式更改视图:

 ...
 xmlns:views="using:Cirrious.MvvmCross.WindowsStore.Views"
 ...
<views:MvxStorePage