为什么关闭对话框会关闭主窗口

时间:2011-09-03 14:00:27

标签: wpf

目前我的WPF应用程序中有一个奇怪的行为。 我有一个主窗口和一个设置对话框。我可以显示设置对话框,但当我关闭它时,我的主窗口也将关闭,应用程序退出。

应用程序的ShutdownMode是 OnMainWindowClose 。但这也发生在 OnLastWindowClose

这是控制MainWindow和设置窗口的Controller类的代码:

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 个答案:

答案 0 :(得分:0)

你应该完全删除你的方法:

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

并在您的App.xaml的StartupUri中正常显示MainWindow