在静态类中存储资源键是一个好主意吗?

时间:2012-08-04 14:50:17

标签: wpf xaml c#-4.0 resourcedictionary

为了保持组织并跟踪WPF / XAML项目中使用的所有资源名称/密钥,我想将资源字典中使用的所有密钥存储在填充了常量的静态类中。我想我记得在代码中避免使用字符串文字。

类似的东西:

<!-- itemtemplates.xaml -- a resource dictionary -->
<Style x:Key="{x:Static local:ResourceKeys.TaskItemItemTemplateKey}" ....>
    ....
</Style>

// ResourceKeys.cs
internal static class ResourceKeys {
    internal static object TaskItemItemTemplateKey {
       get { return __some_readonly_unique_key_object; }
    }
    internal static object SomeReallyUglyGradientBrushKey {
       get { return __some_other_unique_key; }
    }
}

这是一个好主意,考虑到我的项目可能会达到1000多个资源。

2 个答案:

答案 0 :(得分:1)

如果您有这么多资源,您可能希望按类型,适用区域或在您的上下文中可能有意义的任何类别将其拆分。至于这样做:为什么不呢?例如SystemColors也是如此。

答案 1 :(得分:0)

您的解决方案的问题是您必须输入两次资源。对于1000个项目来说,这是相当多的工作......可以轻松找到所有资源名称的列表(resource.Keys)。如果您使用命名约定,您可以在几乎没有成本的情况下订购一些订单。然后你可以执行一些操作,如果你想拥有颜色资源:在Application.resources.Keys中选择rs,其中rs.beginswith(“Color”)。