我已经实现了一个用户控件,其中包含一个绑定到List的ListBox:
listBox1.ItemsSource = list;
我已经实现了一个删除(仅)对列表的引用的方法:
listBox1.ItemsSource = null;
调用此方法后,我强制进行垃圾收集:
GC.Collect();
我的列表类的析构函数未被调用。显然有一些隐藏的参考列表。
对此行为的任何解释都将不胜感激。
答案 0 :(得分:1)
list 不为空,所以它仍然存在。
list = null;
答案 1 :(得分:1)
解决方案是从ObservableCollection(或实现INotifyCollectionChanged的东西)而不是List中派生列表类。