相关疑难解决方法(0)

DisplayNameAttribute的本地化

我正在寻找一种方法来本地化PropertyGrid中显示的属性名称.可以使用DisplayNameAttribute属性"覆盖"属性的名称.不幸的是,属性不能有非常量表达式.所以我不能使用强类型资源,例如:

class Foo
{
   [DisplayAttribute(Resources.MyPropertyNameLocalized)]  // do not compile
   string MyProperty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我浏览了一下,发现了一些从DisplayNameAttribute继承的建议,以便能够使用资源.我最终会得到如下代码:

class Foo
{
   [MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed
   string MyProperty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

但是我失去了强大的类型资源优势,这绝对不是一件好事.然后我遇到了DisplayNameResourceAttribute,这可能是我正在寻找的.但它应该在Microsoft.VisualStudio.Modeling.Design命名空间中,我找不到我应该为此命名空间添加的引用.

有人知道是否有更好的方法以一种好的方式实现DisplayName本地化?或者是否有使用Microsoft似乎用于Visual Studio的方法?

c# attributes localization visual-studio-2008

119
推荐指数
7
解决办法
8万
查看次数

如何将WPF xaml表单的Design DataContext设置为使用泛型类型参数的类

最初我的.xaml表单使用以下行来设置Designer的DataContext,其中视图模型是非泛型类型(注意我在谈论设计时DataContext而不是将在运行时使用的实际DataContext).

<Window ...
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"    
d:DataContext="{d:DesignInstance Dialogs:CustomerSearchDlogViewModel}"
...>
Run Code Online (Sandbox Code Playgroud)

现在我没有CustomerSearchDlogViewModel,而是有一个通用的SearchDialogViewModel,但我无法弄清楚<Window>标签中的哪种语法可以让我指定该视图模型.

wpf datacontext xaml

10
推荐指数
1
解决办法
6710
查看次数