- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了想要在 WPF 应用程序的多个 xaml 页面中使用的控件样式。为此,我创建了一个 Resources.xaml 并在其中添加了样式。
然后在我的页面中添加此代码
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/SampleEventTask;component/Resources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
在两个页面上,这工作正常,但在第三页上,我收到一个编译错误,内容如下:
All objects added to an IDictionary must have a Key attribute or some other type of key associated with them.
如果我为此添加一个键,例如 ResourceDictionary x:Key="x",则会出现编译错误,但在运行应用程序时会错误地查找样式。
我可以通过将原始(未指定键)“ResourceDictionary”xaml 从顶级网格移动到该页面上包含的网格来消除编译错误并运行应用程序。
但是我不明白这里发生了什么。关于问题是什么的任何建议,我只是错过了一些东西或做错了一些事情。有更好的方式来共享样式吗?
谢谢
最佳答案
除了合并的 ResourceDictionary 之外,该页面中是否还定义了任何其他资源?
例如,这是我创建的窗口的片段。
<Window x:Class="SelectionPagePrototype.SelectionPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SelectionPagePrototype"
Title="SelectionPage" MinHeight="600" MinWidth="800" Loaded="OnLoaded">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ImageResourceDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
<local:QuickPickCheckedConverter x:Key="quickPickConverter" />
<local:BoolToCaptionConverter x:Key="captionConverter" />
<local:ProductAndImageTypeConverter x:Key="imageConverter" />
</ResourceDictionary>
</Window.Resources>
<Grid> ...
合并的字典不需要键,但该窗口的其他资源需要。
关于WPF编译错误 "IDictionary must have a Key attribute",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2931864/
我的 ViewModel 上有一处特性那是类型 IDictionary .我正在查看 ViewModel 上的属性列表并使用反射来确定它是否是字典。 目前我有: if (typeof(IDiction
我有一个 IDictionary 字段,我想通过 IDictionary 类型的属性公开它转换非常困难,因为我不知道我能做什么 .Cast<>() IDictionary to. 最好的我有: IDi
我有一个用作字典的 C# 类,所以我现在正在支持 IDictionary。 除了属性 Keys 和 Values 之外一切都很好: ICollection Keys { get; } ICollect
当一个方法有两个重载时,一个接受 IDictionary 另一个接受 IDictionary ,将 new Dictionary() 传递给它被认为是不明确的。但是,如果将两个重载更改为接受 IEnu
我有一个我不满意的方法,你能告诉我如何做得更好吗? public Foo WithBar(IDictionary parameters) { var strStrDict = new Dict
以下代码自HashSet起有效工具 IEnumerable : IEnumerable edges = new HashSet(); 但是如果我尝试使用与字典中键入的值相同的值,我会得到一个编译错误:
我有一个返回 IDictionary > 的函数. 我有另一个函数需要 IDictionary > . 我需要将第一个函数的返回传递给第二个函数。 编译器不想将第一个隐式转换为第二个。那么如何在 O(
我认为转换 IDictionary> 相当简单反对 IDictionary> , 但是 var val = (IDictionary>)Value; 抛出 System.InvalidCastExce
我正在使用反射和递归进行一些通用对象比较。递归方法在每个步骤中都需要一些类型信息,这些信息由调用者提供。有一次我知道下一个属性是 Dictionary ,我想发送正确的类型。我想到了这个: Type
很多消息来源都在谈论这个问题,但我不太理解这个概念。 IDictionary 是通用的,它的类型安全等。 当我深入研究 EntityFrameworkv5 时,我看到一个属性在 LogEntry 类中
我创建了一个 IDictionary 扩展来将 IDictionary Exception.Data 值写入字符串。 扩展代码: public static class DictionaryExten
我们有一个应用程序在多个 Dictionary 中保存大量对象,其中一些对象在应用程序的生命周期中不断增长(交易应用程序有很多工具和不断增长的订单/交易) . 由于大型对象堆的碎片,我们遇到了 Out
我在外部类中有以下方法 public static void DoStuffWithAnimals(IDictionary animals) 在我的调用代码中,我已经有一个 Dictionary对象,
通过今天的一些随机对象创建,我遇到了一个 Dictionary 的简洁小快捷方式.以下赋值是编译器快捷方式还是 Dictionary 的一个特性? . IDictionary items = { {
我正在测试这样的对象: if (item is IDictionary) 但这并不匹配所有其他类型组合 , 等等…… 我只想知道它是否实现了接口(interface),而不管它使用的是什么泛型。 我找
有谁知道序列化实现 IDictionary 的对象的创造性方法吗? ...没有实现新类(class)? 最佳答案 如果类实现了IDictionary是可序列化的(如 Dictionary )和 K和
我这辈子都弄不明白。假设我有以下两个字典对象: // Assume "query" is a LINQ queryable. Dictionary d1 = query.ToDictionary(k
这个问题在这里已经有了答案: Remove from Dictionary by Key and Retrieve Value (6 个答案) 关闭 2 年前。 我想知道是否可以通过键删除一个 ID
在 TagBuilder 和其他类中,我可以这样写: var tr = new TagBuilder("HeaderStyle"){InnerHtml = html, [IDictionary Att
取下面这段代码 var dictionary = new Dictionary { ["A"] = 1, ["B"] =
我是一名优秀的程序员,十分优秀!