Редактор коллекции во время выполнения
-
03-07-2019 - |
Вопрос
Я работаю над приложением для редактирования пар имя / значение, используя сетку свойств. Некоторые из свойств в моем файле класса являются коллекциями ListDictionary. Есть атрибут редактора, который я могу применить при объявлении свойства, которое сделает Работа редактора коллекций во время выполнения? Если нет, возможно ли наследовать от ComponentModel.Design.CollectionEditor для использования во время выполнения? Я должен быть в состоянии добавить, удалить и редактировать значения коллекции. Большое спасибо, Терри
Решение
Думаю, в этой статье объясняется, что вам нужно: Как редактировать и сохранять коллекции с помощью CollectionEditor
Другие советы
из статьи codeproject [ http://www.codeproject.com /KB/cs/dzcollectioneditor.aspx][1] р>
Есть три требования, которые Коллекция должна встретиться, чтобы быть успешно сохранились с CollectionEditor:
<Ол>Во-первых, коллекция должна реализовывать интерфейс IList (наследование от System.Collections.CollectionBase is в большинстве случаев лучший вариант). Во-вторых, он должен иметь свойство Indexer (Item in VB.NET). Тип это свойство используется CollectionEditor для определения тип по умолчанию экземпляров, которые добавлю в коллекцию.
Чтобы лучше понять, как это работает, взгляните на GetItemType () функция CustomCollectionEditorForm:
защищенный виртуальный тип GetItemType (IList coll) { PropertyInfo pi = coll.GetType (). GetProperty (" Item " ;, новый тип [] {typeof (int)}); вернуть pi.PropertyType } Р>
Ол> В-третьих, класс коллекции должен реализовывать одно или оба из следующих методы: Add и AddRange. Хотя Интерфейс IList имеет члена Add и CollectionBase реализует IList, вы все равно придется реализовать метод Add для вашей коллекции, учитывая, что CollectionBase объявляет явное Участник реализации IList & # 8217; s Добавить члена. Дизайнер сериализует коллекция в соответствии с чем метод, который вы реализовали. если ты реализовали оба, AddRange предпочтительным. р>
В этой статье вы найдете все необходимое для реализации своей коллекции в сетке свойств