【发布时间】:2010-02-11 12:29:35
【问题描述】:
我在Window 中有一个UserControl。在应用程序的生命周期内,Window
有时会关闭,当用户再次需要它时,会创建一个新实例。
在某些时候,UserControl 需要显示一个对话框,并且需要将其父控件作为所有者传递给该对话框。关键是:第一次创建 Window
并且控件必须显示一个对话框,一切正常。它调用Window.GetWindow(this) 并将结果传递给对话框。但是,当Window 关闭并稍后创建一个新实例并且UserControl 打开对话框时,我得到以下异常:
无法将 Owner 属性设置为已关闭的窗口。
每当创建Window 时,都会调用此代码:
var window = new ControllerConfigurationWindow() { Owner = this };
所以它显然是一个新实例,当然在显示对话框时,窗口是打开的......我没有在任何地方关闭它......
所以我想知道——我这么说在我看来毫无意义——但Window.GetWindow(this) 会不会以某种方式给了我一个旧实例的父级?
【问题讨论】: