我将使用MVVM Light在我的应用程序中,解决方案中有多个程序集。如何在不在App.xaml资源中定义的情况下,在每个程序集中都有一个ViewModelLocator呢?
通常ViewModelLocator是这样定义的:
我在我的解决方案中创建了一个类库的Resources.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>
我在我的解决方案中创建了一个类库的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>
然而,ModuleXLocator未找到:
<phone:PhoneApplicationPage
...
DataContext="{Binding Main, Source={StaticResource ModuleXLocator}}">