Как бы я загрузить WPF MVVM View из внешней библиотеки DLL в приложение WPF? - PullRequest
1 голос
/ 06 октября 2011

Я пишу приложение InformationKiosk WPF, которое отображает различные полноэкранные слайды (или просмотры), вращаясь по каждому из них в течение заранее определенного промежутка времени.Стадия 1 завершена ... это позволяет пользователям просматривать выбранные веб-страницы и работает отлично.

Стадия 2 - это то, где я застрял.Теперь я должен отображать слайды из внешних приложений WPF (из которых у меня есть полный доступ к коду), и у меня возникают реальные проблемы с этим.

Я добавил библиотеки других приложений в качестве ссылок в приложении InformationKiosk, ноЯ получил ряд ошибок из-за стилей, которые не были найдены.Я думаю, проблема в том, что в необходимом представлении из другого приложения используются стили из файла App.xaml и внешней таблицы стилей.

Мне удалось загрузить стили из файла внешней таблицы стилей, используя следующую команду в ResourceDictionary.MergedDictionaries element:

<ResourceDictionary Source="pack://application:,,,/ProjectName.Views;component/Support/
SupportQueueItemStyle.xaml" />

Проблема в том, что я не могу загрузить файл App.xaml из другого приложения, потому что у нас не может быть 2 App.xaml в одном приложении.Поэтому при запуске приложения я продолжаю получать исключение XamlParseException «Задать свойство System.Windows.FrameworkElement.Style» вызвало исключение ».(Это означает, что он не может найти стили).

Так, как этот senario должен быть реализован в WPF / MVVM?Конечно, должен быть лучший способ, чем копировать код из необходимых представлений в приложение InformationKiosk.Я также попытался загрузить сборку внешнего приложения, используя следующий код:

Assembly assembly = Assembly.LoadFrom(@".\AssemblyName.exe");

Хотя он загружается нормально, я не смог найти никаких полезных свойств в assembly и не знаю, что с ним делать.и если я даже могу получить то, что я хочу, используя этот метод.

Если вы можете помочь, пожалуйста, сделайте.Большое спасибо.

1 Ответ

1 голос
/ 12 октября 2011

Создание общей сборки (.dll). Мы используем ее для наших продуктов, и она работает очень хорошо. У нас есть 4-5 общих сборок на основе WPF. В Visual Studio мы просто использовали «Библиотеку пользовательских элементов управления WPF» вместо App.xaml, у вас есть Themes / Generic.xaml, который будет загружен автоматически, если вы добавите ссылку на ваш основной исполняемый файл.

...