在运行时更改类文件的属性

时间:2010-11-16 09:24:01

标签: c#

如何在运行时更改类文件的属性名称,该文件在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”)]我能够得到解决方案,但我期待一些代码在运行时进行更改

3 个答案:

答案 0 :(得分:1)

听起来你正在寻找这样的东西:

http://www.codeproject.com/KB/grid/PropertyGridDynamicProp.aspx

答案 1 :(得分:1)

使用显示名称属性

[DisplayName("Other Name")]
public string Text { ... }

答案 2 :(得分:0)

您需要通过属性TypeDescriptor附加到您班级的自定义TypeDescriptionProviderAttribute

在自定义TypeDescriptor类中,您需要覆盖方法GetProperties()并返回PropertyDescriptor类的已编辑实例。

所有* Descriptor类都是元数据类,应该通过更改来传播类型/成员 - 例如重命名类型/成员。

一些带有* Descriptor类的示例: