我们是否需要在调度容器类时将每个项目都放在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;
}
}
答案 0 :(得分:2)
ObservableCollection没有实现IDisposable,也没有检查项目的类型。因此,您必须手工处理这些物品(或为一次性物品实施IDisposable容器)