Подтвердить что ты не робот

PropertyGrid - пользовательские имена свойств?

Я чувствую себя идиотом за то, что я был в шоке от этого, я чувствую, что ответ должен быть очевиден. Но, увы, потратив слишком много времени на просмотр обозревателя объектов и Google, я прихожу искать помощь.

У меня есть класс, который я использую в PropertyGrid. Я обнаружил, что, устанавливая CategoryAttribute для каждого свойства, он создает новую категорию для каждого элемента, очевидно. Это устанавливает мою сетку свойств, чтобы иметь [+] для каждого элемента с моим пользовательским именем в нем, и это не то поведение, которое я пытаюсь достичь.

В Visual Studio, если вы нажмете на элемент в обозревателе решений, скажем, на сборку, у него есть нулевые узлы дерева и просто список прекрасно названных свойств, то есть любая строка может идентифицировать свойство, а не только объект имя. Поэтому вместо этого:

[+ Путь к файлу]
      FilePath | PropertyValue
[+ Размер файла]
      FileSize | 0 KB

Я ищу:

[+ File]
    путь к файлу | значение
    Размер файла | 0 KB

Или даже выше, без начального [+] node. Я залил пространство имен System.ComponentModel, ища подходящий атрибут, но я не могу его найти.

Как я могу достичь этого эффекта? Должно быть возможно, Visual Studio делает это, и я считаю, что они являются одним и тем же компонентом, а не производным и расширенным.

Спасибо! -Эрик

4b9b3361

Ответ 1

Используйте DisplayNameAttribute, чтобы изменить отображаемый текст (сделать его более понятным для человека), DescriptionAttribute, чтобы добавить текст справки к свойству, и CategoryAttribute для группировки свойств..

using System.ComponentModel;

[Category("Test")]
[DisplayName("Test Property")]
[Description("This is the description that shows up")]
public string TestProperty {get;set;}

Ответ 2

Вы хотите, чтобы CategoryAttribute установлен в "Файл" для свойств BOTH:

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

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

Я рекомендую читать " Получение максимальной пользы от .NET Property Grid Control" для других идей, которые вы можете использовать для организации ваших свойств, в том числе добавление описаний.