WPF中 propertyGrid控件 实现多语言版本问题
propertyGrid 要设置多语言 而且要绑定数据(即在propertyGrid中修改一个字段后台字段的值也修改)
你知道解决方案吗? 求解答
1、首先[CategoryAttribute("标题1"),
DisplayName("标题2"),
Description(""),
DefaultValue(typeof(string), "")
]
public string Name
是不行的,CategoryAttribute要求输入常量,就没办法加入语言控制。
2、网上有些重写这个控件的方法可以实现语言控制,但是用这个方法改变后面的value 后台的值不会改变。实现方法:
http://hi.baidu.com/knowaysoft/item/1f32cbe313267011595dd826
有没有办法实现数据的绑定,我看里面重写了以后有数据的get set,但是没办法把改变传回后台代码。有没有了解的大神。。。。
------解决方案--------------------多语言直接resource里面定义多个语言文件 根据选择语言不同加载不同resource文件不就行了
然后用的地方findresource(“key”)不就行了么?
------解决方案--------------------利用TypeDescriptor.AddProvider方法,添加运行时的TypeDescriptionProvider,下面是对IDictionary<string, object>类型定义的TypeDescriptionProvider,参照这个例子,给你的类型定义自己的TypeDescriptionProvider,添加多语言的CategoryAttribute值。
public class DynamicDescriptionProvider : TypeDescriptionProvider
{
public DynamicDescriptionProvider() : base() { }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
return new DynamicTypeDescriptor(objectType, instance);
}
}
public class DynamicTypeDescriptor : CustomTypeDescriptor
{
public DynamicTypeDescriptor(Type objectType, object instance)
: base()
{
if (instance != null)