0

ViewModelLocatorの 2 つのインスタンスがあり、それぞれが異なるアセンブリにあるプロジェクトがあります。アプリを実行しようとすると、最初に次のようなエラーが表示されます。

最初のアセンブリで ViewModelLocator のインスタンスを作成できません。

最初のプロジェクトで 2 番目の DLL を参照して実行すると、このエラーが発生します。実行されるのViewModelLocatorは最初のものですが、正しい方法かどうかはわかりません。

誰でも次のことについてガイドできますか:

  • LOC に 2 つの 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 に答える