public UserPreferencesPageViewModel (IScreen hostScreen, UserSettings userSettings) { HostScreen = hostScreen; var tempPrefChanged = this.WhenAnyValue (x => x.TemperaturePreference).StartWith (userSettings.TemperaturePreference); tempPrefChanged .Subscribe (x => userSettings.TemperaturePreference = x); tempPrefChanged .Select (x => x == TemperatureUnit.Celsius ? "C" : "F") .ToProperty (this, vm => vm.TempPreferenceLabel, out _TempPreferenceLabel); // var volumePrefChanged = this.WhenAnyValue (x => x.VolumePreference); // volumePrefChanged // .StartWith (userSettings.VolumePreference) // .Do (x => System.Diagnostics.Debug.WriteLine ("setting vol pref {0}", x)) // .Subscribe (x => userSettings.VolumePreference = x); // // var equipLossChanged = this.WhenAnyValue (x => x.EquipmentLossVolume); // // equipLossChanged // .StartWith (userSettings.EquipmentLossVolume) // .Subscribe (x => userSettings.EquipmentLossVolume = x); // // var trubLossChanged = this.WhenAnyValue (x => x.TrubLossVolume); // // trubLossChanged // .StartWith (userSettings.TrubLossVolume) // .Subscribe (x => userSettings.TrubLossVolume = x); }
// public MainPageViewModel () : this (null) // { // } public MainPageViewModel (IScreen hostScreen, UserSettings userSettings) { HostScreen = hostScreen ?? Locator.Current.GetService<IScreen> (); NavigateStartBrewing = ReactiveCommand.Create (); NavigateStartBrewing .ObserveOn (RxApp.MainThreadScheduler) .Subscribe (_ => HostScreen.Router.Navigate.Execute (new GeneralBrewStatsViewModel (HostScreen))); NavigateUserPreferences = ReactiveCommand.Create (); NavigateUserPreferences .ObserveOn (RxApp.MainThreadScheduler) .Subscribe (_ => HostScreen.Router.Navigate.Execute (new UserPreferencesPageViewModel (HostScreen, userSettings))); }