【问题标题】:WPF Window.GetWindow(this) odd behaviour?WPF Window.GetWindow(this) 奇怪的行为?
【发布时间】: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) 会不会以某种方式给了我一个旧实例的父级?

【问题讨论】:

    标签: c# wpf window


    【解决方案1】:

    没关系……我没想到…… 事情是这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-27
      • 2013-05-13
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 2011-08-22
      • 2020-10-06
      • 1970-01-01
      相关资源
      最近更新 更多