【发布时间】:2014-08-29 17:58:29
【问题描述】:
我在我的应用程序中使用 MVVM Light,解决方案中有多个程序集。 如何在不定义 App.xaml 资源的情况下在每个程序集中拥有一个 ViewModelLocator?
通常 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}}">
【问题讨论】:
标签: xaml windows-phone-8 mvvm mvvm-light