我有一个Window实例,我通过从按钮单击调用wInstance.ShowDialog()来显示,然后按Alt + F4关闭窗口。现在的问题是我不能再次调用wInstance.ShowDialog()。如何重新使用相同的窗口实例。
例外: 窗口关闭后,无法设置可见性或调用Show或ShowDialog。
答案 0 :(得分:9)
您需要覆盖wInstance OnClosing方法,将窗口可见性设置为隐藏,并取消关闭事件。
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
this.Visibility = Visibility.Hidden;
e.Cancel = true;
}
答案 1 :(得分:1)
究竟是什么使得使用同一个窗口如此重要? 如果您使用的是MVVM,则只需将viewmodel重新用于新窗口即可。
答案 2 :(得分:0)
我正在重复使用窗口作为使用树视图的对话框,并且客户端希望树枝保持打开以进行更多选择。
重写可以重复使用,分支会保持扩展。
我没有使用视图模型来保持简单,因为它是一个只读选择对话框。但由于我似乎无法清除选择,我可能不得不切换到视图模型。