51

メモリ リークを防ぐために、アイテムが消えるときにバインドを解除する必要がありますか? リロードして新しいテンプレートがコントロールに適用され、そのテンプレートに外部要素へのバインディングが存在する場合、テンプレート用に作成されたコントロールがガベージコレクションされるのを防ぐことができるのではないかと少し心配していると思いますか?

4

3 に答える 3

6

http://msdn.microsoft.com/en-us/library/aa970850.aspxから、WPF は弱いイベント パターンを使用します。これは、オブジェクトへの強い参照を保持せず、オブジェクトへの唯一の参照である場合に GC を実行できるようにします。オブジェクト。

「WPF データ バインディングの多くの側面には、イベントの実装方法に弱いイベント パターンが適用されています。」

DependencyPropertiesただし、弱いイベントはオブジェクトでのみ使用されるINotifyPropertyChangedため、 以外のバインド モードで POCO にバインドすると、OneTimeメモリ リークが発生する可能性があります。

于 2013-08-30T23:47:46.427 に答える