给定一个这样的类:
public class SomeClass
{
public SomeClass()
{
Name = "Default";
Values = Enumerable.Range(1,3).ToArray();
}
public string Name { get; set; }
public int[] Values { get; set; }
}
该类的默认实例在 PropertyGrid
控件上显示如下:
是否可以覆盖 Values
属性显示的文本,使其显示类似 1, 2, 3
而不是 Int32[] Array
.
欢迎涉及反射和从 PropertyGrid
控件继承的解决方案。
最佳答案
我认为您可以向 Values
添加一个 TypeConverter
属性:
[TypeConverter(typeof(IntArrayToStringTypeConverter))]
public int[] Values { get; set; }
然后根据documentation创建一个IntArrayToStringTypeConverter
。不确定是否已经有一个类型转换器可以满足您的要求。
关于c# - 如何覆盖 PropertyGrid 中属性显示的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14706954/