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>.Add
calls theInsertItem
virtual 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.