20

我有一个在PropertyGrid. 我发现通过设置CategoryAttribute每个属性,它显然会为每个项目创建一个新类别。这将我的属性网格设置为每个项目都有一个 [+],其中包含我的自定义名称,这不是我想要实现的行为。

在 Visual Studio 中,如果您单击解决方案资源管理器中的一个项目,例如一个程序集,它有零个树节点和一个完全命名的属性列表,即任何字符串都可以标识一个属性,而不仅仅是对象的名称。所以不要这样:

[+ 文件路径] 文件路径
    | 属性值
[+ 文件大小]
    文件大小 | 0 KB

我正在寻找这个:

[+ 文件]
    文件路径 | 值
    文件大小 | 0 KB

甚至上面没有初始 [+] 节点。我已经通过 System.ComponentModel 命名空间寻找适用的属性,但我找不到。

我怎样才能达到这个效果?这一定是可能的,Visual Studio 做到了,我相信它们是同一个组件,而不是派生和扩展的。

4

2 回答 2

43

使用DisplayNameAttribute更改显示的文本(使其更易于阅读),使用DescriptionAttribute向属性添加帮助文本,使用CategoryAttribute对属性进行分组。

using System.ComponentModel;

[Category("Test")]
[DisplayName("Test Property")]
[Description("This is the description that shows up")]
public string TestProperty {get;set;}
于 2009-09-17T19:37:20.107 回答
9

您需要将两个属性的CategoryAttribute设置为“File”:

[Category("File")]
public string FilePath { get; set;}

[Category("File")]
public int FileSize { get; set;}

我建议阅读“充分利用 .NET 属性网格控件”,了解可用于组织属性的其他想法,包括添加描述。

于 2009-09-17T19:33:49.040 回答