2013-09-26 73 views
0

我有一個項目,其中有兩個實例ViewModelLocator,每個實例都在不同的程序集中。當我嘗試運行我的應用程序時,它在開始時會給我一個錯誤:無法在c#中創建viewmodellocator的實例mvvm light

無法在第一個程序集中創建ViewModelLocator的實例。

如果我在第一個項目中引用第二個DLL,然後運行它,則會出現此錯誤。運行的ViewModelLocator從第一個開始,但我不確定這是否是正確的方式。

可以在任何人指導是否:

  • 我可以在一個LOC 2個ViewModelLocators;和
  • 這樣做的正確方法是什麼?

我的指導和副駕駛項目都有ViewModelLocators。這裏是我的代碼:

xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:ignore="http://www.ignore.com" 
    mc:Ignorable="d ignore" 
    xmlns:vm="using:Copilot.ViewModel"> 
    xmlns:vm="using:Navigator.Guide.ViewModel"> 

    <Application.Resources> 
     <ResourceDictionary> 
      <!--Global View Model Locator--> 
      <vm:ViewModelLocator x:Key="Locator" 
           d:IsDataSource="True" /> 


     </ResourceDictionary> 
    </Application.Resources> 
</Application> 
+0

甚至不會編譯。你有重複的命名空間定義。 – Will

+0

是的,我也註冊了兩次。 – user2817553

回答

1

我回答這個只是爲了讓有人遇到同樣的問題會得到幫助。

如果您是從的NuGet添加mvvmlight 5.3.0,繼續前進,還可以添加ModernUI.wpf版本1.0.9和你的App.xaml中需要的資源,如下面

<Application.Resources> 
    <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.xaml" /> 
       <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.Light.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
      <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" xmlns:vm="clr-namespace:myApp.ViewModel" /> 
    </ResourceDictionary> 
    </Application.Resources> 
相關問題