2011-09-03 2 views
0

현재 내 WPF 응용 프로그램에 이상한 동작이 있습니다. 주 창과 설정 대화 상자가 있습니다. 설정 대화 상자를 표시 할 수 있지만 닫을 때도 내 메인 창이 닫히고 응용 프로그램이 종료됩니다.왜 대화 상자를 닫으면 주 창이 닫힙니다

응용 프로그램의 종료 모드는 입니다. OnMainWindowClose입니다. 그러나 이것은 OnLastWindowClose에서도 발생합니다.

인 MainWindow를하고 설정 창을 제어 내 컨트롤러 클래스의 코드 :

public class MainWindowController : IDisposable, IMainWindowController 
{ 
    private readonly MainWindowViewModel mainWindowViewModel; 
    private readonly MainWindow mainWindow; 

    private IoAdapter ioAdapter; 

    public MainWindowController() 
    { 
     this.mainWindowViewModel = new MainWindowViewModel(this); 
     this.mainWindow = new MainWindow { DataContext = this.mainWindowViewModel }; 
    } 

    public void ShowMainWindow() 
    { 
     mainWindow.Show(); 
    } 

    public void ShowSettingsWindow() 
    { 
     var viewModel = new SettingsWindowViewModel(); 

     var settingsWindow = new SettingsWindow { DataContext = viewModel, Owner = this.mainWindow}; 

     var showDialog = settingsWindow.ShowDialog(); 
     if (showDialog != null && showDialog.Value) 
     { 
      // Apply Settings 
     } 
    } 
+1

ShowMainWindow 메서드를 완전히 제거하면 어떻게됩니까? 메인 윈도우는 시작시 표시 될 것이므로 필요하지 않다고 생각합니다. 설정 적용에서 코드는 어떻게됩니까? –

+0

App.xaml에서 StartUpUri를 제거 했으므로 Show()를 사용하여 mainWindow를 표시해야합니다. 현재 설정을 적용하기위한 코드가 없습니다. 단지 – Noffls

+0

의 댓글이 있습니다. 내가 말했듯이 app.xaml에 readd라고 쓰면 재생산 할 수 있습니까? 그렇지 않으면 정상적으로 작동합니까? –

답변

0

완전히 당신의 방법을 제거해야합니다 :

public void ShowMainWindow() 
    { 
     mainWindow.Show(); 
    } 

을하고 MainWindow를가 정상적으로 표시해야 App.xaml의 StartupUri

관련 문제