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