У меня следующий вопрос. У меня есть решение MSVS с тремя проектами.
- первый проект - это проект VSX, в котором отображается форма с сеткой свойств.
- второй — типичный проект библиотеки C# с классом преобразования пользовательского типа BooleanYesNoConverter, унаследованным от BooleanConverter. Этот преобразователь используется для отображения Да/Нет в сетке свойств вместо Истина/Ложь.
- третий проект также является проектом библиотеки C#, который содержит общедоступный класс с одним общедоступным свойством, имеющим атрибут
[TypeConverter(typeof(BooleanYesNoConverter))]
Есть ссылки на второй проект из первого и третьего.
Когда мы запускаем первый проект в режиме отладки (в кусте VS Experimental) и нажимаем на меню, плагин загружает сборку, сгенерированную из третьего проекта (с помощью Assembly.LoadFrom), и создает экземпляр нашего класса (с одним общедоступным логическим свойством). Затем он передает этот экземпляр свойству propertyGrid.SelectedObject. В сетке свойств отображается общедоступное свойство, но вместо Да/Нет справа отображается True/False.
Я поставил точки останова в методах обложки (и в конструкторе), но, похоже, мы туда не пошли. Вместо пользовательского преобразователя типов используется стандартный.
Более интересно, что если я помещу класс BooleanYesNoConverter в третий проект (так что это будет n одна сборка с моим классом), сетка свойств показывает правильные варианты Yes/No.
Спасибо за вашу помощь заранее!