我目前正在使用 MVVMLight 框架构建一个 WP7 应用程序。我想将资源字典添加到我的 app.xaml,但是当我这样做时失败了。这是来自 app.xaml 的片段
<Application.Resources>
<!--Global View Model Locator-->
<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
<!--Merged Resource Dictionaries-->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="View/StyleResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
因为我使用的是具有键的 ViewModelLocator,所以我收到一条错误消息,警告我不能混合使用和不使用键的资源。在我的资源字典中添加一个键后它看起来像下面这样:
<ResourceDictionary x:Key="resourceDictionary">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="View/StyleResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
在资源字典中,我有一个带有“TitleTemplate”键的样式。在任何一种情况下,当我尝试从我的一个视图中引用资源字典时,它都会失败。我认为的示例代码如下:
<TextBlock Name="TB_ContactNameLabel"
Text="contact"
Style="{StaticResource TitleTemplate}"/>
设计师立即给我错误“资源'TitleTemplate'无法解析”。如果我引用资源字典的键(即:resourceDictionary),则不会引发错误,但它显然没有做任何事情。最后,如果我将 resourceDictionary 直接添加到其资源中的页面,而不是 app.xaml 一切正常。我不想将它添加到我计划使用的每个视图中。我在这里错过了什么吗?