How you are going to use this event in READ-ONLY collection? I don't know what was the reason to implement INotifyCollectionChanged interface at the first view it looks illogical, but assuming the fact that reason really exists - it is pretty logical to make this events protected.
Edited:
I've found a way for you of how to do this:
ObservableCollection<string> obsCollection = new ObservableCollection<string>();
INotifyCollectionChanged collection = new ReadOnlyObservableCollection<string>(obsCollection);
collection.CollectionChanged += new NotifyCollectionChangedEventHandler(collection_CollectionChanged);
You just need to refer to your collection explicitly by INotifyCollectionChanged interface.