How to correctly override method which raises an event
===

I have a class MyCol, which inherits from ObservableCollection(Of T). It overrides InsertItem method in such manner:

    Public Event PreInsertItem As EventHandler(Of EventArgs)

    Protected Overridable Sub OnPreInsertItem(e As EventAtgs)
        RaiseEvent PreInsertItem(Me, e)
    End Sub

    Protected Overrides Sub InsertItem(index As Integer, item As T)
        OnPreInsertItem(EventArgs.Empty)

        MyBase.InsertItem(index, item)
    End Sub

As you can see I have added an event which is raised every time an item is added to MyCol collection.

Next I create another class MyColSubClass, which inherits from MyCol, and also overrides InsertItem method:

    Public Overrides Sub InsertItem(index as Integer, item as T)
        OnPreInsertItem(EventArgs.Empty)

        ' some additional code goes here

        MyBase.InsertItem(index, item)
    End Sub

**THE QUESTION:**

Now, when I use an instance of MyColSubClass and add an item, *PreInsertItem* event is raised twice: first in MyColSubClass and than in MyCol.

What design pattern should I use to make PreInsertItem event raise only once: in MyColSubClass?