如何确定ResourceDictionary键的顺序?

时间:2011-07-26 09:00:39

标签: c# wpf xaml resourcedictionary

我有以下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中的项目顺序的建议?

1 个答案:

答案 0 :(得分:5)

它可能以某种方式基于哈希码。 (不一定只是“按哈希码的升序排列”。)特别是,文档声明:

  

ResourceDictionary类不是从DictionaryBase派生的。相反,ResourceDictionary类实现了IDictionary,但在内部依赖于Hashtable。

鉴于它使用哈希表,订单很可能取决于哈希值。

通常字典不是订购 - 或者说,订单是不应依赖的实现细节。

鉴于我看不到任何指定排序的文档,我认为你应该视为无序。如果您想以特定顺序呈现密钥,您应该自己完成。