原因是在ViewModel中在构造函数中注入了Window 对象,即使没有使用,主窗口关闭程序不会退出,即使 ViewModel 是 AddTransient 注入的。
解决方法:不使用构造函数注入Window,通过GetService获取Window
通过注入对象调用GetService() 获取窗口对象,并且上面通过构造函数注入的窗体多次调用,只能打开一次,第二次报错。
Window 对象通过AddTransient注入非单例 GetService获取在注入的时候,多次调用无问题。
在 App.xaml 中设置下面的参数即使在构造函数中注入了Window 对象没有使用也会正常退出
ShutdownMode="OnMainWindowClose"