【发布时间】:2011-06-12 13:18:15
【问题描述】:
根据这个document,以下代码导致WPF内存泄漏:
myDataBinding = new Binding("Children.Count");
myDataBinding.Source = myGrid;
myDataBinding.Mode = BindingMode.OneWay;
MyTextBlock.SetBinding(TextBlock.TextProperty, myDataBinding);
如果我们在 XAML 中绑定一些值,也会发生同样的情况:
<TextBlock Name="MyTextBlock" Text="{Binding ElementName=myGrid, Path=Children.Count}" />
为避免绑定内存泄漏,我们需要像这样删除表单关闭事件的绑定:
BindingOperations.ClearBinding(MyTextBlock, TextBlock.TextProperty);
问题:
有没有办法从表单和子控件上的所有绑定元素中删除绑定?
看来我这里需要一些递归方法。
【问题讨论】:
标签: c# wpf memory-leaks binding