diff --git a/CalculatorMVVM/ViewModels/MainWindowViewModel.cs b/CalculatorMVVM/ViewModels/MainWindowViewModel.cs index b04eccc..2e0c874 100644 --- a/CalculatorMVVM/ViewModels/MainWindowViewModel.cs +++ b/CalculatorMVVM/ViewModels/MainWindowViewModel.cs @@ -13,6 +13,9 @@ public string Num1 set { SetProperty(ref _Num1, value); AddCommand.RaiseCanExecuteChanged(); + SubCommand.RaiseCanExecuteChanged(); + MultiCommand.RaiseCanExecuteChanged(); + DivideCommand.RaiseCanExecuteChanged(); } } @@ -25,6 +28,9 @@ public string Num2 { SetProperty(ref _Num2, value); AddCommand.RaiseCanExecuteChanged(); + SubCommand.RaiseCanExecuteChanged(); + MultiCommand.RaiseCanExecuteChanged(); + DivideCommand.RaiseCanExecuteChanged(); } } @@ -44,6 +50,10 @@ public string Result public MainWindowViewModel() { AddCommand = new DelegateCommand(Add, CanCalculate); + SubCommand = new DelegateCommand(Sub, CanCalculate); + MultiCommand = new DelegateCommand(Multi, CanCalculate); + //DivideCommand = new DelegateCommand(Divide, CanCalculate); + DivideCommand = new DelegateCommand(Divide, CanDivide); } private void Add() @@ -53,14 +63,17 @@ private void Add() private void Sub() { + Result = (_dblNum1 - _dblNum2).ToString(); } private void Multi() { + Result = (_dblNum1 * _dblNum2).ToString(); } private void Divide() { + Result = (_dblNum1 / _dblNum2).ToString(); } public bool CanCalculate() @@ -77,7 +90,21 @@ public bool CanCalculate() public bool CanDivide() { - return default; + var problem = !double.TryParse(Num1, out _dblNum1) || !double.TryParse(Num2, out _dblNum2); + + if (problem) + { + return false; + } + else if (_dblNum2 == 0.00) + { + return false; + } + else + { + return true; + } + } } }