在合并的 ResourceDictionary 中找不到 DataTemplate

DataTemplate not found in merged ResourceDictionary

我目前正在为 Windows Phone 8.1 和 Windows 8.1 开发通用应用程序。 我分享我的大部分代码,但我愿意保留样式资源。

一些背景:首先,现在我只开始了 WP8.1 项目,所以一切都与这个平台有关。在这个 WP8.1 项目中,我有一个 MainPage.xaml,其中包含一个 Pivot 控件。 PivotItem 之一是 UserControl,为清楚起见,称为 MyUserControl

我在两个平台项目的 "Assets" 目录中创建了一个资源字典 Styles.xaml。然后,我将这 2 个新文件注册到我的共享 App.xaml 中,如下所示:

<Application.Resources>
    <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
    <ResourceDictionary x:Key="ResourceDictionary">
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Assets/Styles.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

在WP8.1项目Styles.xaml文件中,我创建了一个DataTemplate

<DataTemplate x:Key="MyDataTemplate">
    <TextBlock Text="This is a textblock" />
</DataTemplate>

MyUserControl 中,我添加了一个 ListView 并将其绑定在 ItemTemplate 属性 到 MyDataTemplate 上,如下所示:

<ListView ItemTemplate="{StaticResource MyDataTemplate}" ItemsSource="{Binding MyContent}" />

当我 运行 解决方案时,我以这个错误结束:

Cannot find a Resource with the Name/Key "MyDataTemplate"

有谁知道我为什么会遇到这个错误?我做错了什么?

一件奇怪的事:当我在 ListView.ItemTemplate 属性 中绑定的 MyDataTemplate 上右键单击 > "Go To Definition" 时,它会将我引导到正确的位置。

提前感谢您的帮助!

你的代码有误,这是正确的

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Assets/Styles.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
        <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
    </ResourceDictionary>
</Application.Resources>