Caliburn Micro导航服务导致空引用异常

4
我正在使用ViewModel First方法,但在从一个ViewModel导航到另一个ViewModel时遇到了问题。
例如,我有两个文件夹,View和ViewModels,每个文件夹中都有两个文件Page1View.xaml,Page2View.xamlPage1ViewModel.cs,Page2ViewModel.cs 在我的应用程序启动中,我有以下代码行,它可以完美地工作。
DisplayRootViewFor<Page1ViewModel>();

现在当我在Page1ViewModel中的按钮点击事件添加下面这行代码时,会出现空引用异常。

_navigationService.NavitageToViewModel<Page2ViewModel>();

我是否遗漏了什么?为了提供更多信息,这是一个UWP应用程序,我正在使用的容器是WinRTContainer,我已经注册了两个ViewModel。


1
首先,你确定 _navigationService 不是 null 吗? - Kevin Gosse
你能否发布一个堆栈跟踪(Stacktrace)? - Markus Hütter
1
你是如何初始化 NavigationService 的?在 UWP 中,NavigateToViewModel 已被弃用,推荐使用 _navService.For<T>().Navigate() 方法。 - mvermef
我现在有一个类似的问题。你已经解决了吗?怎么解决的? - TIKSN
1个回答

0
你正在采用 ViewModel-first 的方法。请注意,DisplayRootViewFor 不会创建 Frame 控件,也不会设置 NavigationService。
请参考以下链接: https://github.com/Caliburn-Micro/Caliburn.Micro/issues/126 要么切换到 View-first 方法,要么在根视图中设置 NavigationService 并传递一个 Frame 给它:

container.RegisterNavigationService(rootFrame);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接