我試圖將我自己製作的MVVM實現中的WP8項目調整爲MVVM Light。MVVM-light已經有一家工廠註冊了INavigationService
應用程序編譯沒有錯誤,但是當我在Expression Blend中打開我的MainPage.xaml中,我會得到這個錯誤:
類project.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的地方沒有其他地方,那麼可能是什麼問題?
任何想法? :)
第二個沒有爲我工作,但第三個沒有 – Rivenfall
我最終使我的ViewModelLocator看起來像這樣:http://i.imgur.com/2Ex0rzy.png只需退出初始化,以防VS設計師認爲在設計時再次構建它是一個好主意。感謝指針! –