【发布时间】:2018-02-27 14:51:23
【问题描述】:
在我的MainWindow 构造函数中,我忽略了Closing 事件,因为我需要调用另一个方法来执行某些任务,例如:
public MainWindow()
{
InitializeComponent();
Closing += (x, y) =>
{
y.Cancel = true;
_discard = true;
CheckSettings();
};
}
public void CheckSettings(bool x)
{
if(x)
Close();
}
在Close 行我得到:
窗口关闭后无法设置可见性或调用 show 或 showdialog
为什么??
【问题讨论】:
-
您不能从 Closing 事件处理程序调用
Close。您可能需要让CheckSettings返回一个布尔值,使用它的返回值设置y.Cancel,并从CheckSettings中删除Close调用 -
在窗口关闭时关闭窗口没有意义,如果框架没有做任何特殊的检测也会导致无限循环。与其问“为什么会出错”,不如问问自己为什么要这样做。
-
@vc74 你能举个例子吗