Theo document này, các mã sau đây gây ra rò rỉ bộ nhớ trong WPF:Có cách nào để xóa các ràng buộc khỏi tất cả các phần tử bị ràng buộc trên một sự kiện đóng biểu mẫu không?
myDataBinding = new Binding("Children.Count");
myDataBinding.Source = myGrid;
myDataBinding.Mode = BindingMode.OneWay;
MyTextBlock.SetBinding(TextBlock.TextProperty, myDataBinding);
Cùng xảy ra nếu chúng ta ràng buộc một số giá trị trong XAML:
<TextBlock Name="MyTextBlock" Text="{Binding ElementName=myGrid, Path=Children.Count}" />
Để tránh rò rỉ bộ nhớ ràng buộc chúng ta cần phải loại bỏ ràng buộc đối với các sự kiện gần dạng như thế này:
BindingOperations.ClearBinding(MyTextBlock, TextBlock.TextProperty);
Câu hỏi:
Có cách nào để xóa các ràng buộc khỏi tất cả các phần tử bị ràng buộc trên điều khiển biểu mẫu và con không?
Có vẻ như tôi sẽ cần một số phương pháp đệ quy ở đây.
Bạn có thể cung cấp liên kết hoặc tham chiếu tới lỗi này đang được khắc phục trong WPF 4 không? – kevindaub
http://support.microsoft.com/kb/938416/en-us Tôi thấy rằng nó đã được cố định bằng cách sử dụng các thử nghiệm của riêng tôi –
Nhắm mục tiêu lại thử nghiệm từ [đây] (http://blogs.msdn.com/b /jgoldb/archive/2008/02/04/finding-memory-leaks-in-wpf-based-applications.aspx) cho thấy sự cố vẫn xảy ra trong .Net 4. – vossad01