CS: this needs a protected virtual method to raise the event, see http://msdn.microsoft.com/en-us/library/ms229011.aspx