0
我正在查看ObservableCollection代碼(感謝awsome .NET Reflector),並驚奇地發現Add和Remove方法未被覆蓋。那麼ObservableCollection如何在PropertyChanged或CollectionChanged事件添加或刪除時通知其通知?ObservableCollection如何工作?
我正在查看ObservableCollection代碼(感謝awsome .NET Reflector),並驚奇地發現Add和Remove方法未被覆蓋。那麼ObservableCollection如何在PropertyChanged或CollectionChanged事件添加或刪除時通知其通知?ObservableCollection如何工作?
它覆蓋了一系列受保護的基礎集合的方法<T>類,例如, InsertItem(INT指數,T項目),的removeItem(INT指數)等
這些覆蓋特別提高事件:
protected override void InsertItem(int index, T item)
{
this.CheckReentrancy();
base.InsertItem(index, item);
this.OnPropertyChanged("Count");
this.OnPropertyChanged("Item[]");
this.OnCollectionChanged(NotifyCollectionChangedAction.Add, item, index);
}
DUH!謝謝。我注意到Collections.InsertItem被覆蓋,但是我沒有檢查到base.Add方法調用了虛擬的InsertItem方法。 – Fragilerus 2010-08-26 17:05:27