处理ObservableCollection <>

问题描述 投票:1回答:1

我们是否需要在检测容器类时将每个物品丢弃在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;
    }
 }
c#-4.0 observablecollection idisposable
1个回答
2
投票

ObservableCollection不实现IDisposable,也不检查项目的类型。所以你必须手工处理这些物品(或为一次性物品实施一个IDisposable容器)

© www.soinside.com 2019 - 2024. All rights reserved.