2015-01-09 5 views
0

Я новичок в создании объектов, поэтому у меня есть вопрос о свойствах здесь. Я создаю открытый класс с несколькими наборами свойств, как ниже фрагмент кода:Лучший способ связать или сгруппировать свойства внутри класса?

Public Class Template 

    'General properties 
Property ID As Integer 
Property Name As String 
Property Description As String 
Property SupportedBrand As String 

End class 

Есть ли способ «ассоциировать» свойство друг с другом? Скажите, что эта группа свойств «общая», эти значения для «аудио», а для «видео»? Моя внутренняя реакция заключается в том, чтобы создать свойство, которое является настраиваемой структурой или списком из них в качестве перечислений, но это не кажется правильным. Какие-либо предложения?

Я знаю, что выполнение Template.General.ID не будет правильным, поскольку это отдельный модуль. Моя цель состоит в том, что мы можем контактировать позже, чтобы сказать «для каждого свойства x в общих свойствах этого объекта шаблона».

+0

те не на самом деле свойства, но поля. Вы хотите, чтобы группы каким образом? Возможно ли это на контроле? – Plutonix

+0

Я думаю, вы правы, поля правильнее. Я создаю пользовательский объект с указанными полями, и я хотел бы сгруппировать их вместе как для чистоты, так и для возможности прокрутки только определенного раздела полей. – Kat

+0

Нет групп, но есть такие объекты, как многие элементы управления, которые содержат внутреннюю коллекцию (Items, Columns, Rows), но это делается путем вложенности классов. Существует читатель MP3-тегов, который помещает связанные группы поддержки в коллекции, и это боль, чтобы ловить определенные свойства. – Plutonix

ответ

1

Вы можете добавить этот атрибут в свойствах:

<Category("General")> 

Все объекты с таким же названием категории будут сгруппированы в окне свойств, если группировка по категориям. Вы можете использовать отражение, чтобы получить атрибуты свойств. Смотрите это для примера о том, как сделать это:

How to filter or find properties based on attributes

+0

, который не создает физической группы свойств, хотя: 'myObj.General.FileSize' не создан магически – Plutonix

Смежные вопросы