2011-03-22 21 views
5

我只想知道在窗口关闭后数据绑定是否仍然响应源更改的事件。如果是这样,如何释放所有数据绑定。关闭WPF窗口是否也释放其所有数据绑定?

我能在MSDN中找到的是Unloaded事件的一句话: “当Unloaded被引发和处理时,事件源父元素(由Parent属性确定)或任何给定元素向上在逻辑或可视化树可能已经被取消设置,这意味着数据绑定,资源引用和样式可能不会设置为正常或最后已知的运行时值。“

但它说”可能不“,所以我仍然不会不知道会不会。它还表示,如果应用程序关闭,Unloaded事件不会升高。

我找到了BindingOperation.ClearAllBindings()。但似乎只能清楚一个对象。为了清除所有问题,我应该递归清除可视化树还是逻辑树?

回答

0

一旦垃圾收集器清理窗口,它将被解除绑定。

手动处理SqlConnections而不关闭它们时,您会看到类似的行为。一旦GC清理它们,连接就会关闭。在此之前,您可能会耗尽连接池。