在合并的 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>
我目前正在为 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>