2017-03-08 73 views
0

我想使用IUiVisualizaerService显示第二个窗口,并关闭\隐藏MainWindow。如果我在MainWindow上调用CloseViewModelAsync,它将关闭整个应用程序。即使我指定App.xaml上的关闭模式为OnLastWindowClose或OnExplicitShutdown。我如何覆盖这种行为?Catel WPF关闭模式

private async void OnOpenProjectExecute() 
    { 
     ProjectMainWindowViewModel viewModel = new ProjectMainWindowViewModel(); 
     this.uiVisualizerService.Show(viewModel); 
     await this.CloseViewModelAsync(true);  
    } 

编辑

我改变了我的方法来

private Task OnOpenProjectExecute() 
    { 
     ProjectMainWindowViewModel viewModel = new ProjectMainWindowViewModel(); 
     this.uiVisualizerService.Show(viewModel); 
     return this.CloseViewModelAsync(false); 
    } 

ExplicitShutdown现在的工作,但新创建的窗口仍然关闭。有什么建议么?

回答

0
  1. 确保设置的关断模式app.xaml.cs
  2. 提示:如果你需要异步命令
+0

感谢您提示使用TaskCommand代替。我还在OnStartup方法中的App.xaml.cs中设置了ShutdownMode,但它没有帮助。 'this.ShutdownMode = ShutdownMode.OnExplicitShutdown;' –

+0

我改变了我的方法。 ExplicitShutdown现在工作,但新创建的窗口仍然关闭。有什么建议么? –