Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF - user control trouble, The component does not have a resource.. 
:(
    Опции темы
Kefir
Дата 17.8.2007, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



Привет! И снова я со своими юзерконтролами.

Система загрузки: Core.cs ищет плагины в определённой директории. Затем на окне можно выбрать плагин и нажать "Run plugin":
Код

        private void buttonRun_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            IPlugin selectedPlugin = (IPlugin)this.listBoxPlugins.SelectedItem;
            selectedPlugin.Reset();
            
            TabItem ti = new TabItem();
            ti.Style = (Style)this.FindResource("SimpleTabItem");

            ti.Tag = selectedPlugin.Name;
            ti.Header = selectedPlugin.Name;
            ti.Content = null;
            ti.Content = selectedPlugin.UIObject;

            this.tabControl.Items.Add(ti);
            this.tabControl.SelectedIndex++;
        }

как видно из кода - плагины имеют свой UIObject, который и показывается юзеру. с одним плагином возникла проблема. при нажатии на "Run plugin" он выдаёт исключение:
Цитата

Message="The component 'PluginERDCatalogueUI.CatalogueViewer' does not have a resource identified by the URI '/PluginERDCatalogueUI;component/catalogueviewer.xaml'."
Source="PresentationFramework"

я, честно говоря, не понимаю к чему бы это. плагин PluginERDCatalogue берёт контрол CatalogueViewer из сборки PluginERDCatalogueUI. и на ините тупо делает this._CatalogueViewer = new CatalogueViewer(); всё. это и есть UIObject плагина.
также стоит отметить, что если создать WPF приложение и туда подключить PluginERDCatalogueUI напрямую, поставить в окно CatalogueViewer, то всё работает прекрасно. Я просто никак не могу понять что от меня хотят этим эксепшном. Опять же - гугл молчит как партизан (не совсем, конечно, но молчит)

Это сообщение отредактировал(а) Kefir - 17.8.2007, 10:50
PM MAIL WWW Skype   Вверх
ivashkanet
Дата 17.8.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



PM MAIL WWW ICQ   Вверх
Kefir
Дата 17.8.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



по первой ссылке - видел, странное решение. на всякий случай таки проверил shadow copy - оно отключено.
по второй ссылке - тоже видел. сидел с час, пытался понять, что же хотели сказать авторы постов и что мне надо покурить чтобы понять смысл их слов. насколько я в целом понял - речь о том, что если в сборке А у меня есть класс MyClass, наследующий от какого-то класса BaseClass, то в сборке Б я не смогу ничего унаследовать от класса MyClass. если да, то, по-моему, это ко мне не относится. У меня есть сборки MainApp, Plugin, PluginUI. в PluginUI есть класс UI : UserControl, в Plugin есть класс Plugin : IPlugin, который содержит pluginUI = new UI(); то есть у меня никаких наследований, описанных в той теме. вообще, я уже искал на мсдн, live.com и гугле. Всё что там по этому поводу есть - прочитано и перечитано. Так что сейчас я надеюсь лишь на знания форумчан, а не на поисковики.
PM MAIL WWW Skype   Вверх
Kefir
Дата 17.8.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



так. методом тыка вроде даже устранил. в PluginERDCatalogueUI было два элеметна - один это сам контрол CatalogueViewer и был интерфейс ICatalogueItem. так вот если удалить этот самый интерфейс, то всё прекрасно получается.... не понимаю почему так происходит, но без него всё идёт как по маслу...
PM MAIL WWW Skype   Вверх
Exception
Дата 17.8.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Во-первых, установи Build Action для твоего CatalogueViewer.xaml в Page (и вообще, поэкспериментируй с ним). Во-вторых, посмотри код внутри CatalogueViewer.InitializeComponent (). Он должен выглядеть так:
Код
public void InitializeComponent ()
{
    if (_contentLoaded)
    {
        return;
    }
    _contentLoaded = true;
    System.Uri resourceLocator = new System.Uri ("CatalogueViewer.baml", System.UriKind.RelativeOrAbsolute);
    System.Windows.Application.LoadComponent (this, resourceLocator);
}
Навеяно этим и этим.

Это сообщение отредактировал(а) Exception - 17.8.2007, 13:00
PM   Вверх
namespace
Дата 17.2.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Цитата(Kefir @ 17.8.2007,  11:08)
... если в сборке А у меня есть класс MyClass, наследующий от какого-то класса BaseClass, то в сборке Б я не смогу ничего унаследовать от класса MyClass.

неужто нет решения этой проблемы? как же быть копипастить?


P.S. народ говорит есть два варианта:
           1. вместо наследования сделать композицию
           2. MyClass сделать code behind

Это сообщение отредактировал(а) namespace - 17.2.2010, 17:14
PM MAIL   Вверх
namespace
Дата 17.2.2010, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



подтверждаю code behind работает, на том и остановился...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.