0

我有一个项目,其中我有两个实例ViewModelLocator,每个实例都在不同的程序集中。当我尝试运行我的应用程序时,它在一开始就给我一个错误说:

无法在第一个程序集中创建 ViewModelLocator 实例。

如果我在第一个项目中引用第二个 DLL 然后运行它,我会收到此错误。运行的ViewModelLocator是第一个,但我不确定这是否是正确的方法。

任何人都可以指导是否:

  • 我可以在一个 LOC 中有两个 ViewModelLocator;和
  • 这样做的正确方法是什么?

我的指导和副驾驶项目都有 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>
4

1 回答 1

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>
于 2016-10-19T23:51:13.323 回答