public MainViewModel() { SelectionViewModel .WhenAnyValue(a => a.SelectedValue) .Where(a => a != null) .Select(method => (a: method, method.GetParameters().Count())) .CombineLatest(I1.WhenAnyValue(_ => _.Output), I2.WhenAnyValue(a => a.Output), (a, b, c) => NewMethod(b, c, v => a.a.Invoke(null, v), a.Item2)) .SelectMany(a => a.ToObservable()) .ObserveOnDispatcher() .Subscribe(normal => { O.Mean = normal.Mean; O.StandardDeviation = normal.StdDev; });