Утечка памяти с WPF & ItemsControl (VB.NET) - PullRequest
1 голос
/ 05 мая 2010

У меня есть ItemsControl, который использует DataTemplate для отображения свойств в моем customClass, который реализует INotifyPropertyChanged ...

Довольно просто ...

Некоторые элементы в DataTemplate используют CommandBindings (например, кнопки), а некоторые имеют некоторый код позади (yuck).

Когда я очищаю ItemsControl и устанавливаю все экземпляры customClass = Nothing, память не освобождается из моей программы. Это становится проблемой довольно быстро!

Есть идеи, где мне начать искать? Я даже зашел так далеко, что полностью прошел визуальное дерево каждого экземпляра DataTemplate и установил каждый Visual = Nothing. Я не совсем, если это должно было иметь какой-либо эффект.

1 Ответ

1 голос
/ 11 мая 2010

Не совсем уверен, где все искать, но определенно проверьте, не установлены ли базовые события.

Если присутствует операция добавления делегата события, обязательно удалите ее.

Если проблема связана с привязками команд, попробуйте найти способ очистить привязку команд при нулевом значении.

Кроме того, более радикально начните использовать WeakReferences и т. Д., Пока не сможете хотя бы точно определить причину утечки.

Удачной охоты!

...