I cleaned up the code, and discovered many improvements along the way.
I do wish I could find a cleaner way to do this:
var whenMethodsFound = Observable.FromEventPattern<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs> act => foundMethods.CollectionChanged += act, act => foundMethods.CollectionChanged -= act);
Idea:
Add a mapping extension in extension method class
Great for simple on the go, but manual for every class you want to do this with.
Which would look like this
public static IObservable<IEvent<PageEventArgs>> GetPublishingPageEvent(this DataFactory dataFactory)
{
return Observable.FromEvent((EventHandler<PageEventArgs> h) => new PageEventHandler(h),
h => dataFactory.PublishingPage += h,
h => dataFactory.PublishingPage -= h);
}