2011-03-22 36 views
5

我只想知道在窗口關閉後數據綁定是否仍然響應源更改的事件。如果是這樣,如何釋放所有數據綁定。關閉WPF窗口是否也釋放其所有數據綁定?

我能在MSDN中找到的是Unloaded事件的一句話: 「當Unloaded被引發和處理時,事件源父元素(由Parent屬性確定)或任何給定元素向上在邏輯或可視化樹可能已經被取消設置,這意味着數據綁定,資源引用和樣式可能不會設置爲正常或最後已知的運行時值。「

但它說」可能不「,所以我仍然不會不知道會不會。它還表示,如果應用程序關閉,Unloaded事件不會升高。

我找到了BindingOperation.ClearAllBindings()。但似乎只能清楚一個對象。爲了清除所有問題,我應該遞歸清除可視化樹還是邏輯樹?

回答

0

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

手動處理SqlConnections而不關閉它們時,您會看到類似的行爲。一旦GC清理它們,連接就會關閉。在此之前,您可能會耗盡連接池。