c# - 如何覆盖 PropertyGrid 中属性显示的文本

标签 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 控件继承的解决方案。

最佳答案

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

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

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

关于c# - 如何覆盖 PropertyGrid 中属性显示的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14706954/

相关文章:

c# - 此 Linq 查询等效的 C# 扩展方法是什么?

.net - 有没有办法让 powershell 的自动完成功能为应用程序工作?

c# - 标识方法的开始和结束

c# - 如何使用 WinForms PropertyGrid 编辑字符串列表?

c# - WinForms 属性网格不允许我更改结构值

c# - 我们如何找到 C# 整数数组中的项目计数?

c# - 如何更改 app.config 的位置

c# - 如何使用 LINQ 计算列表中的重复项

c# - 如何在blob存储中上传具有原始文件夹结构的文件?

c# - 在不使用属性网格控件的情况下使用 .NET 集合编辑器