我写了一个类库(.dll) 实现通过反射从外部应用程序调用的接口 .dll具有另一个wpf应用程序的引用(在同一解决方案中,不同的程序集) 外部应用程序从dll中调用应上载wpf应用程序(上载窗口)的方法,但我成功做到了,但是我遇到了一些问题,例如: 1)从Dll Im试图为WindowViewModel添加值的过程中,我收到错误消息,说我需要在Dispatcher线程上工作,我尝试执行此操作,但仍然无法正常工作。 2)它说我需要在STAThread上工作,如果外部应用程序使用dll,该怎么办。
我虽然要使用App.cs实例从dll管理wpf应用程序, 当我尝试在以下方法上创建App.cs实例时:App.Run()我收到有关STAThread的错误。 有解决方案吗?
答案 0 :(得分:1)
除了在UI线程上加载视图之外,还必须在UI线程上创建视图UI对象,以便应用程序能够加载它。
Application.Current.Dispatcher.Invoke(()=>{
Grid view = new Grid();
ExampleLoadViewToApplication(view);
});
应该可以解决问题。 有关WPF中的UI线程的信息,请参见this thread。