0

我已经实现了一个用户控件,其中包含一个绑定到列表的 ListBox:

listBox1.ItemsSource = list;

我已经实现了一个删除(唯一)对列表的引用的方法:

listBox1.ItemsSource = null;

调用此方法后,我强制进行垃圾收集:

GC.Collect();

我的列表类的析构函数没有被调用。显然有一些对列表的隐藏引用。

对此行为的任何解释将不胜感激。

4

2 回答 2

1

解决方案是从 ObservableCollection(或实现 INotifyCollectionChanged 的​​东西)而不是 List 派生列表类。

于 2013-03-21T15:35:52.597 回答
1

list不为空,所以它仍然存在。

list = null;
于 2013-03-20T15:40:22.140 回答