У меня есть приложение, которое позволяет пользователю выбирать изображение во время разработки либо в виде простого изображения, либо из списка изображений.
Пока все круто, за исключением того, что это происходит не из браузера свойств Visual Studio, а из сетки свойств, которая является частью редактора типов.
Моя проблема в том, что и средство выбора изображений (фактически средство выбора ресурсов), и преобразователь типов списков изображений полагаются на некоторые службы времени разработки для выполнения своей работы. В случае списка изображений это IReferenceService, а в случае средства выбора ресурсов - это служба с именем _DTE.
В первом случае редактирования из обозревателя свойств Visual Studio я мог бы получить ссылку на эти службы, но (1) как я могу добавить их в контекст дескриптора типа моей сетки свойств?
Для проверки в будущем было бы лучше, если бы я мог просто скопировать ссылку на все службы в контексте дескриптора типа. (2) Откуда браузер свойств получает эти услуги в первую очередь?
ЭТА: Я до сих пор не знаю, как это сделать, но теперь знаю, что это возможно.
(1) Элемент управления подклассом и добавьте свойство, тип которого представляет собой массив кнопок.
(2) Добавьте его в форму.
(3) Выберите новый элемент управления в службе дизайна и отредактируйте новое свойство в браузере свойств.
(4) Всплывает диалоговое окно редактора коллекции
(5) Добавить кнопку
(6) Редактировать изображение и список изображений - редактор типов и преобразователь типов, соответственно, ведут себя как им следует.
ETA2: Хорошо, мне становится тепло. Похоже, вы делаете это через свойство Site в таблице свойств. Я могу создать новый сайт и передать ему контекст дескриптора типа, на который у меня есть ссылка, и тогда он должен иметь все услуги. Я попробую ...
ETA3: Да, вот и все. Добавлю ответ.