2011-01-24 7 views

ответ

1

Выполнение этого с помощью ICustomTypeDescriptor и вашего собственного класса PropertyDescriptor довольно просто и не требует большого количества кода.

В этой статье Customized display of collection data in a PropertyGrid описано, как это сделать подробно. Для добавления категорий вам также необходимо переопределить свойство Category в классе PropertyDescriptor.

3

Вы можете использовать CategoryAttribute. В документации указано:

Новая категория может быть создана для любого имени, указав название категории в конструкторе для CategoryAttribute.

Пример:

[ 
Category("MyCategory"), 
Description("Specifies something") 
] 
public string Something { //... } 
+0

Вопрос был атрибут категории единственный способ, или есть другой! : P - N – WraithNath

+0

@WraithNath вы получили это правильно! – msfanboy

+0

@WraithNath, правда? Я не понял этого, но я полагаю, что вы сейчас прямо сейчас, я прочитал его снова ;-) –

0

Это звучит, как вы пытаетесь СУИ-использовать PropertyGrid для отображения нескольких объектов.

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

+0

у вас есть представление, сколько времени потребуется? – msfanboy

+0

@msf: Это полностью зависит от ваших навыков разработки и сложности объектов. В принципе, вам нужно создать связку PropertyDescriptors. – SLaks

+0

@msfanboy: Это легко. См. Мой ответ. – Peladao