我正在尝试将我的WP8项目从自己制作的MVVM实现调整为MVVM Light。
应用程序可以编译通过,但当我在Expression Blend中打开MainPage.xaml时,会收到以下错误:
类项目.Services.INavigationService已经注册。App.xaml
我的ViewModelLocator.cs:
/// <summary>
/// Initializes a new instance of the ViewModelLocator class.
/// </summary>
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
}
else
{
if (!SimpleIoc.Default.IsRegistered<INavigationService>())
{
SimpleIoc.Default.Register<INavigationService>(() => new NavigationService());
}
}
SimpleIoc.Default.Register<MainPage>();
SimpleIoc.Default.Register<SettingsEditViewModel>();
}
从我的代码注释中可以看出,我已经尝试了这里建议的修复方法,但在Blend中仍然遇到了这个错误。没有其他地方可以注册INavigationService,那么问题可能是什么呢?
有什么想法吗? :)
ViewModelLocator
的构造函数的第三种静态方式对我有效! - Pseudonymous