我们是否需要在检测容器类时将每个物品丢弃在ObservableCollection
内?或者我们可以只处理容器类,它将处理该类中的所有对象。比如说:
public class SomeClass : IDisposable
{
private ObservableCollection<JobItem> jobItemTemplates = new ObservableCollection<JobItem>();
public ObservableCollection<JobItem> JobItemTemplates
{
get
{
return this.jobItemTemplates;
}
set
{
if (this.jobItemTemplates != value)
{
this.jobItemTemplates = value;
this.OnPropertyChanged("JobItemTemplates");
}
}
}
}
protected override void OnDispose()
{
GC.SuppressFinalize(this);
if (this.jobTreeItemViewModelItem != null)
{
foreach(JobTreeItemViewModel item in this.jobTreeItemViewModelItem)
{
item.Dispose();
}
this.jobTreeItemViewModelItem.Clear();
}
this.jobTreeItemViewModelItem = null;
}
}
ObservableCollection不实现IDisposable,也不检查项目的类型。所以你必须手工处理这些物品(或为一次性物品实施一个IDisposable容器)