我有一个我在PropertyGrid
中使用的课程。我发现通过在每个属性上设置CategoryAttribute
,它显然为每个项目创建了一个新类别。这将我的属性网格设置为每个项目都有一个[+],其中包含我的自定义名称,这不是我想要实现的行为。
在Visual Studio中,如果单击解决方案资源管理器中的项目(例如,程序集),它将具有零树节点和仅有完美命名属性的列表,即任何字符串都可以标识属性,而不仅仅是对象的名称。所以不要这样:
[+文件路径]
FilePath |
的PropertyValue
[+文件大小]
FileSize | 0 KB
我正在寻找:
[+文件]
文件路径|值
文件大小| 0 KB
甚至上面没有初始的[+]节点。我已经通过System.ComponentModel命名空间寻找适用的属性,但我找不到。
我怎样才能达到这个效果?它必须是可能的,Visual Studio会这样做,我相信它们是相同的组件,而不是衍生和扩展组件。
答案 0 :(得分:41)
使用DisplayNameAttribute更改显示的文字(使其更具人性化),DescriptionAttribute添加帮助文本到属性,CategoryAttribute对属性进行分组。
using System.ComponentModel;
[Category("Test")]
[DisplayName("Test Property")]
[Description("This is the description that shows up")]
public string TestProperty {get;set;}
答案 1 :(得分:9)
您希望将CategoryAttribute设置为“文件”以用于BOTH属性:
[Category("File")]
public string FilePath { get; set;}
[Category("File")]
public int FileSize { get; set;}
我建议您阅读“Getting the most out of the .NET Property Grid Control”,了解可用于组织财产的其他提示,包括添加说明。