I'm leaving out the specific detail of using ObservableForProperty
here - it's only the fact that the types of the streams differ that is important, so we can look at this as a vanilla Rx problem.
If you have streams with differing types then obviously the compiler cannot merge them into a single type itself. You need to specify a result selector function as the final argument to CombineLatest
to tell it how you want to do this: e.g. given the following source streams:
IObservable<T1> xs;
IObservable<T2> ys;
IObservable<T3> zs;
...then one easy option is to produce an anonymous type (as long as you aren't returning it outside of the function of course) e.g.:
Observable.CombineLatest(xs, ys, zs, (x,y,z) => new { x,y,z });