2017-03-08 45 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現在工作,但新創建的窗口仍然關閉。有什麼建議麼? –