【发布时间】:2023-08-28 04:27:02
【问题描述】:
我目前正在为 Windows Phone 8.1 和 Windows 8.1 开发通用应用程序。 我分享了我的大部分代码,但我愿意保持样式资源分开。
一些背景:首先,现在我只启动了 WP8.1 项目,所以一切都与这个平台有关。在这个 WP8.1 项目中,我有一个 MainPage.xaml,其中包含一个 Pivot 控件。其中一个PivotItem 是UserControl,为了清楚起见,称为MyUserControl。
我在两个平台项目中的“资产”目录中创建了一个资源字典 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 上右键单击>“转到定义”时,它会将我引导到正确的位置。
提前感谢您的帮助!
【问题讨论】:
标签: xaml datatemplate win-universal-app resourcedictionary