Как добавить группу в сетку свойств без использования категории? - PullRequest
4 голосов
/ 15 декабря 2010

мне нужно сгруппировать свойства в сетке свойств без использования категории

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

Украсьте свойство с помощью CategoryAttribute и укажите название категории, в которой вы хотите, чтобы это свойство появилось. Если эта категория еще не существует, новая один будет создан автоматически.

Например, если у вас есть свойство UserName, которое вы хотите отобразить в пользовательской категории «Пользователи» в окне свойств, вы должны написать следующий код в своем пользовательском элементе управления:

[Category("Users")]
public string UserName
{
    get { return _userName }
    set { _userName = value }
}

Если вы хотите, чтобы ваше имущество отображалось в существующей категории (одной из тех, которые уже отображаются в окне «Свойства»), вам следует указать вместо нее название этой категории. Например, если бы я хотел, чтобы свойство UserName появилось в категории «Данные», я просто изменил бы приведенный выше код на:

[Category("Data")]
public string UserName
{
    get { return _userName }
    set { _userName = value }
}
1 голос
/ 22 декабря 2010

"извините, друг только что увидел ваш ответ, мне нужно создать подгруппы внутри группы, такие как группа шрифтов, представленная в сетке свойств, в этой группе будут присутствовать такие свойства, как имя, размер, единица измерения"

То, что вы, похоже, описываете в своем комментарии, является вложенными свойствами.Для простых типов, таких как float, если вы выставите их как свойство, PropertyGrid уже знает, как их отображать и редактировать.Пользовательские классы имеют реализацию по умолчанию, которая не позволяет редактировать и отображает имя класса.Если вы хотите отобразить свойства внутри вашего класса, вам нужно добавить это выше определения класса:

[TypeConverter(typeof(ExpandableObjectConverter))]

Это говорит о том, что сетка свойств позволяет расширять ваше свойство, чтобы видеть свойства внутри него.

Много дополнительной информации о PropertyGrid можно найти здесь: Получение максимальной отдачи от .NET Framework PropertyGrid Control

...