WPFのMVVMで電卓づくり(12)
出力画面の符号を反転させるボタン「±」を実装します
構想
MainViewにてエラー時無効となる符号反転ボタン「±」を実装します
MainModelにて符号反転ボタンに対応した内部データの更新処理を実装します
実装
構想に沿って各MVVMクラスに追記していきます
MainView
符号反転ボタン「±」を実装します
<!--符号反転ボタン--> <Button Grid.Row="3" Grid.Column="0" Content="±" CommandParameter="Reverse"/>
尚、前回までの実装で既にボタンのStyleにて
IsEnabledにエラー時falseとなるプロパティを紐づけしてあります
MainModel
符号反転ボタンクリックでMainViewModel.PushCommand経由で
呼び出されるMainModel.SetOperation()にて
switch-case文に符号反転ボタン用の処理を追記します
case OperationKind.Reverse: Reverse(); break;
出力画面の符号を反転させる処理Reverse()を作成します
public void Reverse() { if (this.IsAdditional) { if (this.AffectText.Contains("-")) { this.AffectText = this.AffectText.Substring(1); } else { if (!this.AffectText.Equals("0")) { this.AffectText = "-" + this.AffectText; } } this.DisplayText = this.AffectText; } else { if (this.OriginalText.Contains("-")) { this.OriginalText = this.OriginalText.Substring(1); } else { if (!this.OriginalText.Equals("0")) { this.OriginalText = "-" + this.OriginalText; } } this.DisplayText = this.OriginalText; } }
出力画面が0のときは符号を反転させないようにしています
動作確認
起動後「±」とクリックした際の画面表示
起動後「・」「±」「1」とクリックした際の画面表示