Запустите приложение wpf из библиотеки классов (dll) - PullRequest
0 голосов
/ 19 мая 2019

Я написал библиотеку классов (.dll), которая реализует интерфейс, который вызывается из внешнего приложения посредством отражения. В DLL есть ссылка для другого приложения wpf (в том же решении, в другой сборке) Внешний вызов приложения для методов изDLL, которая должна загрузить приложение wpf (загрузить окно), я успешно это делаю, но я сталкиваюсь с некоторыми проблемами, такими как: 1) С DLL я пытаюсь добавить значение в WindowViewModel, и я получил ошибку, которая говорит, что мне нужно работатьв потоке Dispatcher я пытался сделать это, но он все еще не работает.2) В нем говорится, что мне нужно работать над STAThread. Как я могу это сделать, если внешнее приложение использует dll.

I, хотя для управления приложением wpf из dll используется экземпляр App.cs, когдаЯ пытаюсь создать экземпляр App.cs для метода: App.Run () Я получаю сообщение об ошибке STAThread.какие-либо решения?

1 Ответ

1 голос
/ 19 мая 2019

В дополнение к загрузке представления в потоке пользовательского интерфейса необходимо также создать объект пользовательского интерфейса представления в потоке пользовательского интерфейса, чтобы приложение могло его загрузить.

Application.Current.Dispatcher.Invoke(()=>{
      Grid view = new Grid();
      ExampleLoadViewToApplication(view);
}); 

должен сделать трюк. см. этот поток для получения информации о потоке пользовательского интерфейса в WPF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...