C# wpfwindow.GetWindow(这种)奇怪的行为?

C# wpfwindow.GetWindow(这种)奇怪的行为?,c#,wpf,window,C#,Wpf,Window,我在窗口中有一个UserControl。在应用程序的生命周期内,该窗口 有时会关闭,当用户再次需要时,会创建一个新实例 在某些时候,UserControl需要显示一个对话框,并需要将其父控件作为所有者传递给该对话框。这里有一个陷阱:第一次创建窗口 控件必须显示一个对话框,一切正常。它调用Window.GetWindow(this)并将结果传递给对话框。但是,当关闭窗口并随后创建一个新实例时,用户控件打开对话框,则会出现以下异常: 无法将所有者属性设置为已关闭的窗口 无论何时创建窗口,都会调用此代

我在
窗口中有一个
UserControl
。在应用程序的生命周期内,该
窗口
有时会关闭,当用户再次需要时,会创建一个新实例

在某些时候,
UserControl
需要显示一个对话框,并需要将其父控件作为所有者传递给该对话框。这里有一个陷阱:第一次创建
窗口
控件必须显示一个对话框,一切正常。它调用
Window.GetWindow(this)
并将结果传递给对话框。但是,当关闭
窗口
并随后创建一个新实例时,
用户控件
打开对话框,则会出现以下异常:

无法将所有者属性设置为已关闭的窗口

无论何时创建
窗口
,都会调用此代码:

var window = new ControllerConfigurationWindow() { Owner = this };
所以这显然是一个新实例,当然在显示对话框时,窗口是打开的。。。我不会在任何地方关闭它


所以我想知道——我这么说在我的脑海里毫无意义——但可能是
Window.GetWindow(this)
以某种方式给了我一个旧实例的父实例吗?

没关系。。。我没在想。。。 事情是这样的:

创建窗口时,事件处理程序已连接, 但我没有在任何地方解开它们。。。所以代码确实是 调用已关闭的窗口