当从主程序窗口生成的模式对话框正常关闭时,我的应用程序意外结束。不会引发未处理的异常,并且不会在主应用程序窗口上触发任何Closing或事件。Closed
本质上,我有一个主/外壳窗口,它是使用 ShellWindow.Show() 在应用程序代码中启动的。通过菜单,用户可以生成一个自定义打开对话框,这是一个创建的新窗口,然后使用 ShowDialog 显示(窗口所有者设置为 shell 窗口的所有者)。
当对话框关闭时(在内部,通过调用 _modalDialogWindow.Close() 的命令),应用程序将关闭,而我只期望模式对话框已关闭。
调试代码表明 ShellWindow 已从内存中转储,因为 _modalDialogWindow.Close() 之后执行的下一行代码是静态程序代码中的 Application.Run() 之外的代码。
如果有人有任何想法,我愿意尝试任何事情。
看来,由于我设计的 MVVM/Ioc 方式,应用程序窗口关闭事件的传播超出了应有的范围。我不明白这个!
但是,将 Application.ShutDownMode 设置为 Explicit 可防止应用程序过早关闭,我现在具有所需的行为。
顺便说一句,按照 declyclone 建议打开所有异常不会产生任何在窗口关闭时在内部引发的异常。
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |