public async void OptionCheckedAsync(BoolOption newOption) { using (_isBusy.BusyMode) { // Because i dont want user to shift between two options till 'Yes' will be pressed... if (newOption != _lastFallbackedOption) { var doChange = await UserInteracting.RequestAcknowledgementAsync("Смена длительности импульса", "Данные предыдущих замеров будут стерты.-NL-NLПродолжить?"); if (doChange) { _calibrator.DiscardShockCalibration(); _lastFallbackedOption = null; } else { newOption.IsChecked = false; _lastFallbackedOption = _previousCheckedOption; _previousCheckedOption.IsChecked = true; // this line triggers method to run again, so it should be the last } _previousCheckedOption = ImpulseDurations.Single(o => o.IsChecked); } } }
public PulseDurationVM(BusyObject isBusy, ShockSensorCalibrator calibrator) { _isBusy = isBusy; _calibrator = calibrator; _previousCheckedOption = ImpulseDurations.Single(o => o.IsChecked); }