public TotalSummaryViewModel(IScreen hostScreen, ITotalSummaryService fundSummaryService, ITotalSummaryService equitySummaryService, ITotalSummaryService bondSummaryService) { var myList = new SourceList <SummaryTemplateViewModel>(); myList.Add(new SummaryTemplateViewModel("Equity", equitySummaryService)); myList.Add(new SummaryTemplateViewModel("Bond", bondSummaryService)); myList.Add(new SummaryTemplateViewModel("Fund", fundSummaryService)); Observable.ObserveOn(myList.Connect(), RxApp.MainThreadScheduler).Bind(out _data).DisposeMany().Subscribe(); HostScreen = hostScreen; }
public SummaryTemplateViewModel(string summaryName, ITotalSummaryService servie) { Title = summaryName; _totalNumber = servie.WhenAny(x => x.TotalNumber, change => change.Value) .ToProperty(this, modelView => modelView.TotalNumber); _totalMarketValue = servie.WhenAny(x => x.TotalMarketValue, change => change.Value) .ToProperty(this, modelView => modelView.TotalMarketValue); _totalStockWeight = servie.WhenAny(x => x.TotalStockWeight, change => change.Value) .ToProperty(this, modelView => modelView.TotalStockWeight); }
public StockListViewModel(IScreen hostScreen, IStockService service, ITotalSummaryService summaryService) { Observable.ObserveOn( service.All.Connect() .Transform(stock => new StockProxy(stock) { TotalMarketValue = summaryService.TotalMarketValue }), RxApp.MainThreadScheduler).Bind(out _data).DisposeMany().Subscribe(); Observable.ObserveOn(summaryService.ObservableForProperty(x => x.TotalMarketValue), RxApp.MainThreadScheduler).Subscribe(x => { foreach (var stockProxy in Data) { stockProxy.TotalMarketValue = x.Value; } }); HostScreen = hostScreen; }