我已经实现了导航服务和视图模型定位器。我可以正确使用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;
}
任何提示?
答案 0 :(得分:0)
您可以使用以下方法检索导航服务,而不是将其作为构造函数的参数传递:
public MainViewModel()
{
_navigationService = ServiceLocator.Current.GetInstance<INavigationService>();
}
注册操作尚未创建任何实例;实例化是按需的。 您可以在此MSDN文章中找到有关MVVM Light IOC类的详细信息: