如何在运行时更改类文件的属性名称,该文件在propertygrid中用作属性
离)
public class propertygrid_sample
{
string m_DisplayString;
public string Text
{
get { return m_DisplayString; }
set { m_DisplayString = value; }
}
//some code to change the name
}
当propertygrid.selectedobject == propertygrid_sample
类对象时,名称Text
将在编译后显示为属性网格中的属性。访问媒体资源TextAlign
时,我需要显示Text
。通过[DisplayName(“TextAlign”)]我能够得到解决方案,但我期待一些代码在运行时进行更改
答案 0 :(得分:1)
答案 1 :(得分:1)
使用显示名称属性
[DisplayName("Other Name")]
public string Text { ... }
答案 2 :(得分:0)
您需要通过属性TypeDescriptor附加到您班级的自定义TypeDescriptionProviderAttribute。
在自定义TypeDescriptor类中,您需要覆盖方法GetProperties()并返回PropertyDescriptor类的已编辑实例。
所有* Descriptor类都是元数据类,应该通过更改来传播类型/成员 - 例如重命名类型/成员。
一些带有* Descriptor类的示例: