我已将 COM 对象附加到属性网格。
Type typeObj = Type.GetTypeFromProgID(progIdService);
var obj = Activator.CreateInstance(typeObj);
propertyGrid1.SelectedObject = obj;
现在我需要某种方法使用翻译器将对象字段翻译成我的语言。我试图使用对象周围的包装器,但对于 COM 对象,我没有PropertyInfo
, 我只有PropertyDescription
所以我仍在寻找所有可能的变体。
您可以做的是重用我对此问题的回答中描述的 DynamicTypeDescriptor 类:PropertyGrid Browsable 找不到实体框架创建的属性,如何找到它? https://stackoverflow.com/questions/16422844/propertygrid-browsable-not-found-for-entity-framework-created-property-how-to-f
像这样:
DynamicTypeDescriptor dtp = new DynamicTypeDescriptor(typeObj);
// get current property definition and remove it
var current = dtp.Properties["ThePropertyToChange"];
dtp.RemoveProperty("ThePropertyToChange");
// add a new one, but change its display name
DynamicTypeDescriptor.DynamicProperty prop = new DynamicTypeDescriptor.DynamicProperty(dtp, current, obj);
prop.SetDisplayName("MyNewPropertyName");
dtp.AddProperty(prop);
propertyGrid1.SelectedObject = dtp.FromComponent(obj);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)