我有这个WPF应用程序,MainNavigationWindow在其构造函数中注册了其他类的事件:
SomeClass obj = new SomeClass();
obj.SomeEvent += new EventHandler(SomeEventHandler);
在EventHandler方法中,我试图显示另一个窗口,如:
SomeWindow window = new SomeWindow();
window.ShowDialog();
但是在创建新对象时会抛出上述异常。任何人都可以告诉我可能出现的问题是什么以及如何解决?
请注意,SomeWindow仅来自System.Window。
答案 0 :(得分:5)
听起来这个事件没有在UI线程中引发,你需要在创建窗口之前编组到UI线程。这可能就像将事件处理程序代码更改为:
一样简单Action action = () => {
SomeWindow window = new SomeWindow();
window.ShowDialog();
};
Dispatcher.BeginInvoke(action);