/// <summary> /// Called by base class Collection<T> when the list is being cleared; /// raises a CollectionChanged event to any listeners. /// </summary> protected override void ClearItems() { if (Count == 0) { return; } CheckReentrancy(); var args = ResetOnClear ? EventArgsCache.ResetCollectionChanged : Collections.CollectionRemove(Items.ToArray(), 0); base.ClearItems(); OnEssentialPropertiesChanged(); if (ResetOnClear) { OnCollectionReset(); } else { OnCollectionChanged(args); } }