У меня серьезная проблема с вложенными пользовательскими элементами управления (UC) в WinForms при попытке реализовать шаблон mvp (пассивное представление). Проект состоит из одной модели (выполненной в виде синглтона) и набора различных презентаторов с соответствующими интерфейсами просмотра. Чтобы избежать одного огромного интерфейса вида и, следовательно, перегруженного основного пользовательского интерфейса, я решил использовать набор различных UC. Каждый UC имеет один интерфейс просмотра и один презентатор, который может получить доступ к модели. Но есть вложенные UC: это означает, что один специализированный UC реализует своего рода базовый UC. Основной пользовательский интерфейс просто представляет контейнер для всех этих UC. Пока все хорошо (если нет, пожалуйста, спросите) ?!
Есть две проблемы, с которыми я сейчас сталкиваюсь (но я полагаю, что они одного происхождения):
- Время от времени больше невозможно загружать UC и тестировать их в тестовом контейнере пользовательского элемента управления Visual Studio 2008. Сообщение об ошибке просто говорит, что проект с выходным типом библиотеки классов не может быть запущен напрямую и т. Д. Я могу «справиться» с этим, выгружая все проекты UC и перезагружая их впоследствии. (Полагаю, что ссылки на все компоненты mvp и другие UC обновляются).
- Предполагая, что реализация моего шаблона mvp в порядке, и все эти UC можно тестировать в контейнере тестирования VS в определенное время - остается самая большая проблема: я не могу добавить какой-либо UC (даже основной и неопубликованные) в простую форму (UI).
Может ли быть, что мой основной UC вызывает все эти проблемы ?! Он состоит из двух простых ComboBox и реализует базовый интерфейс докладчика и базовый вид. Всякий раз, когда я добавляю этот UC в другой UC, конструктор VS добавляет две ссылки на общедоступные методы получения UC в качестве ресурсов. Затем я вручную удаляю эти ресурсы из файла resx и рекомендую соответствующие строки в файле конструктора.