我在我的应用程序中使用MVVM Light,在解决方案中有多个程序集.如何在每个程序集中都没有ViewModelLocator,而无需在App.xaml资源中定义?
通常,ViewModelLocator的定义如下:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Sol1;component/GlobalResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<viewModels:ViewModelLocator xmlns:main="clr-namespace:MainModule.ViewModel;assembly=MainModule" x:Key="Locator" d:IsDataSource="True"/>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
我在我的解决方案中的类库中创建了一个Resources.xaml,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ModuleX="clr-namespace:ModuleX">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Common;component/CommonResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<ModuleX:ViewMoldelLocator x:Key="ModuleXLocator" />
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
但是,找不到ModuleXLocator:
<phone:PhoneApplicationPage
...
DataContext="{Binding Main, Source={StaticResource ModuleXLocator}}">
Run Code Online (Sandbox Code Playgroud)