我有以下ResourceDictionary
(缩写):
<ResourceDictionary>
<Fluent:RibbonContextualTabGroup Header="Dokument" x:Key="dokumentRibbonGroup" x:Name="dokumentRibbonGroup" />
<Fluent:RibbonTabItem x:Key="dokumentRibbonTab" Header="Start" />
<Fluent:RibbonTabItem x:Key="ueberpruefenRibbonTab" Header="Überprüfen" />
<Fluent:RibbonTabItem x:Key="austauschRibbonTab" Header="Austausch" />
</ResourceDictionary>
当我访问字典的Keys
属性时,键按以下顺序排列:
dokumentRibbonTab austauschRibbonTab ueberpruefenRibbonTab dokumentRibbonGroup
我无法理解那个顺序。它不是按字母顺序排列的,不是修订版,尤其不是原始订单。有人有提示吗?或者甚至更好,关于如何指定ResourceDictionary
中的项目顺序的建议?
答案 0 :(得分:5)
它可能以某种方式基于哈希码。 (不一定只是“按哈希码的升序排列”。)特别是,文档声明:
ResourceDictionary类不是从DictionaryBase派生的。相反,ResourceDictionary类实现了IDictionary,但在内部依赖于Hashtable。
鉴于它使用哈希表,订单很可能取决于哈希值。
通常字典不是订购 - 或者说,订单是不应依赖的实现细节。
鉴于我看不到任何指定排序的文档,我认为你应该将视为无序。如果您想以特定顺序呈现密钥,您应该自己完成。