"Key"属性只能用于"IDictionary"中包含的元素

Bra*_*ore 6 wpf xaml

我在下面的第6行代码下面得到了波浪线,给出了标题中说明的错误.我刚刚迁移到VS 2012,一切都在VS 2010中运行良好.我觉得问题可能就在其他地方......有人可以告诉我这个xaml实际上有什么问题吗?

<Application x:Class="SageWpf.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:SageWpf">
    <Application.Resources>
        <ResourceDictionary x:Key="rd">
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary>
                    <local:AppBootStrapper x:Key="bootstrapper"/>
                    <local:EffectConverter x:Key="effectConverter"/>
                    <local:VisibilityConverter x:Key="visibilityConverter"/>
                </ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>


    </Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)

Fed*_*gui 10

<ResourceDictionary x:Key="rd">是无效的.x:Key从那里删除.

另外..这是构建资源的一种糟糕方式.将其更改为:

<Application.Resources>
    <ResourceDictionary>
        <local:AppBootStrapper x:Key="bootstrapper"/>
        <local:EffectConverter x:Key="effectConverter"/>
        <local:VisibilityConverter x:Key="visibilityConverter"/>
    </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

如果您在另一个XAML文件中定义了资源并且您想在此处导入它们,则仅使用合并字典.