Привязка к списку вызывает утечку памятиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Привязка к списку вызывает утечку памяти

Сообщение Anonymous »


Когда я привязываю ItemsSource ListBox к списку, механизм привязки удерживает элементы списка после того, как элемент управления исчез. Это приводит к тому, что все элементы списка остаются в памяти. Проблема исчезает при использовании ObservalbleCollection. Почему это происходит?

XAML внутри тега окна
Code behind:

Код: Выделить всё

public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}

private void Button_Click(object sender, RoutedEventArgs e)
{
this.DataContext = null;
ContentControl.Content = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
ViewModel

Код: Выделить всё

class ViewModel : INotifyPropertyChanged
{
//Implementation of INotifyPropertyChanged ...

//Introducing ObservableCollection as type resolves the problem
private IEnumerable _list =
new List { new Person { Name = "one" }, new Person { Name = "two" } };

public IEnumerable List
{
get { return _list; }
set
{
_list = value;
RaisePropertyChanged("List");
}
}

class Person
{
public string Name { get; set; }
}
Edit: To check the leaking of the person istances, I used ANTS and .Net memory profiler. Both show that after pushing the GC-button only the binding engine is holding reference to the person objects.


Источник: https://stackoverflow.com/questions/195 ... emory-leak
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pyasn decoder.decode вызывает утечку памяти, поскольку статистика докера показывает постоянный рост памяти (pysnmp=4.4.1
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Вызывает ли сохранение ссылки на LazyListState в ViewModel утечку памяти?
    Гость » » в форуме Android
    0 Ответы
    43 Просмотры
    Последнее сообщение Гость
  • SwiftUI ViewModel не деиницируется и вызывает утечку памяти
    Anonymous » » в форуме IOS
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI ViewModel не деиницируется и вызывает утечку памяти
    Anonymous » » в форуме IOS
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Мое межстраничное объявление вызывает утечку памяти?
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»