我在WPF应用程序中显示了一个登录对话框,该对话框上有一个取消按钮,而不是尝试登录应用程序,将其关闭。问题是,我有一个用户控件出现在主窗口窗体上,所以如果我尝试运行Application.Current.Shutdown()或this.Close()方法,我从其中一个事件处理程序获得一个异常,分配一个事件到用户控件的特定控件。例外是NullReferenceException,即对象引用未设置为对象的实例。
从我对WPF的有限理解来看,似乎在我尝试关闭应用程序时,还有另一个线程(UI线程?)试图初始化MainWindow上的组件。我不确定这是否正确,但我希望有人可以解释为什么这样做以及任何阻止它的方法以便我可以正确关闭应用程序。
更多信息,此登录对话框和随后的Application.Current.Shutdown()方法都发生在MainWindow构造函数中,如果有帮助,则为dunno。
感谢您的帮助。
答案 0 :(得分:0)
我怀疑在处理主窗口之前不会删除事件处理程序,这可能会导致此异常。
答案 1 :(得分:0)
好的没关系,我得到了答案,我将InitialiseComponent()方法放在if语句周围,如果用户点击退出,欢乐日期将bool设置为false:)