public void RemoveAt(int index) { IgnoreNextCollectionChangedEvent = true; T oldItem = List[index]; List.RemoveAt(index); FireRemove(oldItem); NotifyCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, oldItem, index)); }