c# - 寻找一种在 PropertyGrid 中动态更改字段名称的方法

标签 c# .net propertygrid

我已将 COM 对象附加到属性网格。

Type typeObj = Type.GetTypeFromProgID(progIdService);
var obj = Activator.CreateInstance(typeObj);
propertyGrid1.SelectedObject = obj;

现在我需要某种方法使用翻译器将对象字段翻译成我的语言。我试图使用对象周围的包装器,但对于 COM 对象,我没有 PropertyInfo,我只有 PropertyDescription,所以我仍在寻找所有可能的变体。

最佳答案

您可以做的是重用我对此问题的回答中描述的 DynamicTypeDescriptor 类:PropertyGrid Browsable not found for entity framework created property, how to find it?

像这样:

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);

关于c# - 寻找一种在 PropertyGrid 中动态更改字段名称的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118630/

相关文章:

.net - 如何将可移植类库 (PCL) 转换为普通类库?

.net - 如何获取对 PropertyValueChanged 事件中更改的对象的引用?

C# 自定义数据类型 "choices"

c# - Google Contacts API asp.net 设置和授权 token

c# - 在 WinRT 的 HttpClient 类中使用 Keep-Alive 连接?

.net - PropertyGrid 可以编辑任何旧的键值对列表吗?

entity-framework - 找不到为 Entity Framework 创建的属性的 PropertyGrid Browsable,如何找到它?

c# - 聚合 RSS 阅读器因 XML 无效而失败?

.net - 如何在 perfiew 的调用树中对线程堆栈进行分组

c# - 在不牺牲索引使用的情况下转义 SQLite LIKE 中的通配符 (%, _)?