Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > WPF - user control trouble |
Автор: Kefir 17.8.2007, 10:26 | ||||
Привет! И снова я со своими юзерконтролами. Система загрузки: Core.cs ищет плагины в определённой директории. Затем на окне можно выбрать плагин и нажать "Run plugin":
как видно из кода - плагины имеют свой UIObject, который и показывается юзеру. с одним плагином возникла проблема. при нажатии на "Run plugin" он выдаёт исключение:
я, честно говоря, не понимаю к чему бы это. плагин PluginERDCatalogue берёт контрол CatalogueViewer из сборки PluginERDCatalogueUI. и на ините тупо делает this._CatalogueViewer = new CatalogueViewer(); всё. это и есть UIObject плагина. также стоит отметить, что если создать WPF приложение и туда подключить PluginERDCatalogueUI напрямую, поставить в окно CatalogueViewer, то всё работает прекрасно. Я просто никак не могу понять что от меня хотят этим эксепшном. Опять же - гугл молчит как партизан (не совсем, конечно, но молчит) |
Автор: ivashkanet 17.8.2007, 10:57 |
Kefir, надеюсь, такого ты не видел: http://geekswithblogs.net/lbugnion/archive/2007/03/07/108214.aspx http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1746994&SiteID=1 ![]() |
Автор: Kefir 17.8.2007, 11:08 |
по первой ссылке - видел, странное решение. на всякий случай таки проверил shadow copy - оно отключено. по второй ссылке - тоже видел. сидел с час, пытался понять, что же хотели сказать авторы постов и что мне надо покурить чтобы понять смысл их слов. насколько я в целом понял - речь о том, что если в сборке А у меня есть класс MyClass, наследующий от какого-то класса BaseClass, то в сборке Б я не смогу ничего унаследовать от класса MyClass. если да, то, по-моему, это ко мне не относится. У меня есть сборки MainApp, Plugin, PluginUI. в PluginUI есть класс UI : UserControl, в Plugin есть класс Plugin : IPlugin, который содержит pluginUI = new UI(); то есть у меня никаких наследований, описанных в той теме. вообще, я уже искал на мсдн, live.com и гугле. Всё что там по этому поводу есть - прочитано и перечитано. Так что сейчас я надеюсь лишь на знания форумчан, а не на поисковики. |
Автор: Kefir 17.8.2007, 11:38 |
так. методом тыка вроде даже устранил. в PluginERDCatalogueUI было два элеметна - один это сам контрол CatalogueViewer и был интерфейс ICatalogueItem. так вот если удалить этот самый интерфейс, то всё прекрасно получается.... не понимаю почему так происходит, но без него всё идёт как по маслу... |
Автор: Exception 17.8.2007, 12:58 | ||
Во-первых, установи Build Action для твоего CatalogueViewer.xaml в Page (и вообще, поэкспериментируй с ним). Во-вторых, посмотри код внутри CatalogueViewer.InitializeComponent (). Он должен выглядеть так:
|
Автор: namespace 17.2.2010, 16:58 | ||
неужто нет решения этой проблемы? как же быть копипастить? P.S. народ говорит есть два варианта: 1. вместо наследования сделать композицию 2. MyClass сделать code behind |
Автор: namespace 17.2.2010, 18:41 |
подтверждаю code behind работает, на том и остановился... |