I was trying to implement a specialized collection that works like ObservableCollection to encapsulate some more mechanisms in it, to do that i also let my collection inherit from Collection and i also implement the same interfaces.
I just do not get though how one actually implements the whole collection-changed-logic, for example Collection<T>.Add is not being overridden (it is not even marked as virtual), so how does the ObservableCollection fire the CollectionChanged event if items were added using that method?
To answer your specific question,
Collection<T>.Addcalls theInsertItemvirtual method (after checking that the collection is not read-only).ObservableCollection<T>indeed overrides this method to do the insert and raise the relevant change notifications.