Существует несколько сценариев привязки, которые могут вызвать утечку памяти в WPF:
1) Привязка к свойству объекта, который не является DependencyProperty
или реализует INotifyPropertyChanged
в любом другом режиме связывания, кроме OneTime
, может привести к утечке памяти, поскольку первый объект будет сохранен в памяти для свойства справочные цели.
2) Существует ошибка с TreeView, которая бесконечно сохраняет ссылку на первый выбранный элемент. Это связано с ошибкой в методе CreateUntargetedBindingExpression
, которая поддерживает ссылку на первый выбранный элемент, даже если это нецелевое выражение привязки. Эту ошибку можно обойти, немного подумав, чтобы предварительно скомпилировать выражение привязки с нулевым элементом привязки.