我正在寻找一种方法来本地化在 PropertyGrid 中显示的属性名称。使用 DisplayNameAttribute 属性可以“重写”属性的名称。遗憾的是,属性不能有非常量表达式。因此,我不能使用强类型资源,例如:
class Foo
{
[DisplayAttribute(Resources.MyPropertyNameLocalized)] // do not compile
string MyProperty {get; set;}
}
我四处看了看,发现了一些建议,可以从 DisplayNameAttribute 继承来使用资源。我最终会得到这样的代码:
class Foo
{
[MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed
string MyProperty {get; set;}
}
然而,我失去了强类型资源的好处,这绝对不是一件好事。然后我发现了 DisplayNameResourceAttribute这可能就是我要找的。但它应该在微软。VisualStudio.模特。设计名称空间,但我找不到应该为这个名称空间添加什么引用。
有人知道是否有一种更简单的方法可以很好地实现 DisplayName 本地化吗?或者是否有办法使用微软似乎正在使用的 Visual Studio?