【发布时间】:2011-07-19 13:50:10
【问题描述】:
我的 Application.Resources 中的 ResourceDictionary 遇到了一些奇怪的问题。 为了在我的应用程序中填充多个 ComboBox,我想将数据存储在 ResourceDictionary 中。
但是,我不断收到“找不到具有该名称/密钥的资源...”错误。
我的 XAML 代码在这里:
<Application.Resources>
<ResourceDictionary x:Key="RDArray">
<sys:String x:Key="item1">Item1</sys:String>
<sys:String x:Key="item2">Item2</sys:String>
<sys:String x:Key="item3">Item3</sys:String>
</ResourceDictionary>
</Application.Resources>
<ListBox x:Name="lb" ItemsSource="{Binding Values, Source={StaticResource RDArray}}" />
由于一些幸运的情况,我能够发现将其他资源(如 Style) 放在 Dictionary 上可以解决问题。
<Application.Resources>
<Style x:Key="fubar" />
<ResourceDictionary x:Key="RDArray">
<sys:String x:Key="item1">Item1</sys:String>
<sys:String x:Key="item2">Item2</sys:String>
<sys:String x:Key="item3">Item3</sys:String>
</ResourceDictionary>
</Application.Resources>
“错误”出现在 WPF 应用程序和 Silverlight 中。
虽然我可以使用显示的“技巧”解决这个问题,但我很好奇这个错误来自哪里。我无法找到任何关于此的信息。也许这只是我,我对 WPF 中的资源的理解有误。
【问题讨论】:
-
您可能想改用x:Array 标记扩展。这允许您在 XAML 中定义项目列表。
标签: wpf xaml resources resourcedictionary staticresource