WP 8.1 MVVM光无法实例化构造函数

时间:2016-06-15 08:44:28

标签: c# windows-phone-8 visual-studio-2015 mvvm-light

我已经实现了导航服务和视图模型定位器。我可以正确使用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;  
}

任何提示?

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法检索导航服务,而不是将其作为构造函数的参数传递:

public MainViewModel()
{
    _navigationService = ServiceLocator.Current.GetInstance<INavigationService>();
}

注册操作尚未创建任何实例;实例化是按需的。 您可以在此MSDN文章中找到有关MVVM Light IOC类的详细信息:

https://msdn.microsoft.com/fr-fr/magazine/jj991965.aspx

相关问题