Редактор коллекции во время выполнения - PullRequest
2 голосов
/ 03 октября 2008

Я работаю над приложением для редактирования пар имя / значение, используя сетку свойств. Некоторые из свойств в моем файле класса являются коллекциями ListDictionary. Есть атрибут редактора, который я могу применить при объявлении свойства, которое сделает Работа редактора коллекций во время выполнения? Если нет, возможно ли наследовать от ComponentModel.Design.CollectionEditor для использования во время выполнения? Я должен быть в состоянии добавить, удалить и редактировать значения коллекции. Большое спасибо, Терри

Ответы [ 2 ]

3 голосов
/ 03 октября 2008

из статьи codeproject [http://www.codeproject.com/KB/cs/dzcollectioneditor.aspx][1]

Есть три требования, которые Коллекция должна встретиться, чтобы быть успешно сохранились с CollectionEditor:

  1. Во-первых, коллекция должна реализовывать интерфейс IList (наследование от System.Collections.CollectionBase is в большинстве случаев лучший вариант).
  2. Во-вторых, он должен иметь свойство Indexer (Item in VB.NET). Тип это свойство используется CollectionEditor для определения тип по умолчанию экземпляров, которые добавлю в коллекцию.

    Чтобы лучше понять, как это работает, взгляните на GetItemType () функция CustomCollectionEditorForm:

    защищенный виртуальный тип GetItemType (IList coll) { PropertyInfo pi = coll.GetType (). GetProperty («Элемент», новый тип [] {typeof (int)}); вернуть pi.PropertyType }

  3. В-третьих, класс коллекции должен реализовывать одно или оба из следующих методы: Add и AddRange. Хотя Интерфейс IList имеет члена Add и CollectionBase реализует IList, вы все равно придется реализовать метод Add для вашей коллекции, учитывая, что CollectionBase объявляет явное член реализации IList's Добавить члена. Дизайнер сериализует коллекция в соответствии с чем метод, который вы реализовали. если ты реализовали оба, AddRange предпочтительным.

В этой статье вы найдете все необходимое для реализации вашей коллекции в сетке свойств

1 голос
/ 03 октября 2008

Я думаю, что эта статья объясняет, что вам нужно: Как редактировать и сохранять коллекции с CollectionEditor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...