public static IObservable <EventTuple <ValueContainer <TValue>, TValue> > GetNewValueObservable <TValue>(this ValueContainer <TValue> source) { return(Observable.FromEventPattern <EventHandler <ValueChangedEventArgs <TValue> >, ValueChangedEventArgs <TValue> >( eh => source.ValueChanged += eh, eh => source.ValueChanged -= eh) .Select( x => EventTuple.Create(source, x.EventArgs.NewValue) )); }
GetEventObservable<TValue>(this ValueContainer<TValue> source) { var eventArgSeq = Observable.FromEventPattern<EventHandler<ValueChangedEventArgs<TValue>>, ValueChangedEventArgs<TValue>>( eh => source.ValueChanged += eh, eh => source.ValueChanged -= eh); return eventArgSeq.Select( x => EventTuple.Create(source, x.EventArgs) ); ; }