public virtual void RejectChanges() { BeginUpdate(); try { foreach (var i in AddedItems.OfType <IRevertibleChangeTracking>()) { i.RejectChanges(); } foreach (var i in AddedItems) { RemoveItem(Items.IndexOf(i)); } foreach (var i in RemovedItems) { InsertItem(Items.Count, i); } foreach (var i in Items.OfType <IRevertibleChangeTracking>()) { i.RejectChanges(); } AcceptChanges(); // To clear the added and removed collections. } finally { EndUpdate(); } }