如何覆盖PropertyGrid中为属性显示的文本

时间:2013-02-05 11:54:52

标签: c# .net propertygrid

鉴于这样的课程:

public class SomeClass
{
    public SomeClass()
    {
        Name = "Default";
        Values = Enumerable.Range(1,3).ToArray();
    }

    public string Name { get; set; }
    public int[] Values { get; set; }
}

该类的默认实例在PropertyGrid控件上显示如下:
PropertyGrid.SelectedObject = new SomeClass();

是否可以覆盖为Values属性显示的文字,以便显示1, 2, 3而不是Int32[] Array



我们欢迎涉及反映和继承PropertyGrid控件的解决方案。

1 个答案:

答案 0 :(得分:2)

我认为您可以向TypeConverter添加Values属性:

[TypeConverter(typeof(IntArrayToStringTypeConverter))]
public int[] Values { get; set; }

然后根据documentation创建IntArrayToStringTypeConverter。不确定是否已经有一个类型转换器可以做你想要的。