2013-03-20 3 views
0

я реализовал пользовательский элемент управления, который содержит ListBox, который связан с Перечнем:WPF C# DataBinding Список Доработка

listBox1.ItemsSource = list; 

я реализовал метод, который удаляет (только) ссылку на список:

listBox1.ItemsSource = null; 

Назвав этот метод, я заставляю вывоз мусора:

GC.Collect(); 

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

Любые объяснения этого поведения были бы с благодарностью получены.

+0

Вы пробовали 'Gc.Colect(); Gc.WaitFor(); Gc.Collect(); '? –

+0

Вы хотите удалить ссылку ItemSource в список или вы хотите, чтобы ListBox был пустым? –

+0

Я хочу удалить ссылку – user2187743

ответ

1

не является нулевым, поэтому он все еще жив.

list = null; 
+0

список передается как параметр, который больше не находится в области видимости после назначения ItemsSource – user2187743

+2

@ user2187743 - Но кто-то, читающий вопрос, этого не знает. –

1

Решение вывести класс из списка ObservableCollection (или что-то, что реализует INotifyCollectionChanged), а не список.

+0

Это не имеет большого смысла в контексте вопроса. –