private void DoCalculation() { IsCalculateEnabled = false; RaisePropertyChanged("IsCalculateEnabled"); ErrorCode errcode = FirstValidation(); if (errcode != ErrorCode.OK) { Result = Utility.getErrorMsg(errcode); } else { var prob = new AmericanOptionProb( _spotPrice, _volatility, _interestRate, _maturity, _strikePrice, _stepsNum, _optionType ); errcode = prob.validate(); if (errcode != ErrorCode.OK) { Result = Utility.getErrorMsg(errcode); } else { Result = Math.Round(prob.calculate(), 4).ToString(); } } RaisePropertyChanged("Result"); IsCalculateEnabled = true; RaisePropertyChanged("IsCalculateEnabled"); }