无法重复显示对话

时间:2015-10-22 09:21:57

标签: c# wpf modal-dialog

在我的App类的构造函数中,当它返回true时,窗口显示为对话框:

public App()
{       
    for (;;)
    {
        ...
        var factory = new ControlsFactory<int>();
        var window = factory.CreateWindow(model);
        var result = window.ShowDialog();
        if (!(result ?? false)) return;                
    }
}

它在第一次迭代中成功显示并返回true(我有一个带有单击处理程序的按钮,我设置DialogResult = true;),但下次它立即返回false并且循环被破坏。有没有什么方法可以将窗口显示为对话,从而产生无限的对话?

1 个答案:

答案 0 :(得分:1)

您可能需要将Application.Current.ShutdownMode设置为ShutdownMode.OnExplicitShutdown

MSDN:

  

ShutdownMode.OnExplicitShutdown

     

只有在调用Shutdown时,应用程序才会关闭。

这是因为,显示模态对话框(当它是唯一存在的窗口时)将默认导致应用程序退出消息被发布,从而导致任何未来的窗口立即关闭之前,直观地展示它们。