【发布时间】:2016-06-15 08:44:27
【问题描述】:
我已经实现了导航服务和视图模型定位器。我可以正确地使用 OnNavigatedTo 打开我的页面。但是当页面初始化时,它并没有经过任何声明的构造函数。
我的定位器实现
INavigationService navigationService = new NavigationService();
navigationService.Configure("About", typeof(AboutPage));
return navigationService;
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
INavigationService navigationService = CreateNavigationService();
SimpleIoc.Default.Register<INavigationService>(() => navigationService);
SimpleIoc.Default.Register<MainViewModel>();
我的页面上的构造函数
public MainViewModel(INavigationService navigationService)
{
_navigationService = navigationService;
}
有什么提示吗?
【问题讨论】:
-
我想知道视图模型的实例是否甚至被注入到页面本身中?
-
这对问题有何影响?
-
viewModel 是视图的依赖项。如果视图不以某种方式需要 viewModel(通常是构造函数依赖项),则 IoC 将永远不会实例化 viewModel 本身。我确实假设 viewModel 的构造函数是问题所在,正如您的问题所示。
-
好的,我也得到了一个无参数构造函数,但没有改变结果。所以问题是:使用的是哪个构造函数?
标签: c# windows-phone-8 visual-studio-2015 mvvm-light