public override void Execute(object parameter) { string text = vm.IsReduceOrRemoveLane() ? $"この路線を削減します。よろしいですか?" : "この路線を廃止します。よろしいですか?"; ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteRemoveLane); vm.ExecuteWithMoney(text, exec); }
public override void Execute(object parameter) { string text = $"この路線を増設するには{LogicUtil.AppendMoneyUnit(vm.CalcAddLaneCost())}かかります。よろしいですか?"; ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteAddLane); vm.ExecuteWithMoney(text, exec); }
public override void Execute(object parameter) { string text = $"この路線の電化設備を撤去します。よろしいですか?"; ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteHidenka); vm.ExecuteWithMoney(text, exec); }
public override void Execute(object parameter) { string text = $"最高速度{vm.CalcUppedSpeed()}km/hにアップすると{LogicUtil.AppendMoneyUnit(vm.CalcSpeedUpCost())}かかります。よろしいですか?"; ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteSpeedUp); vm.ExecuteWithMoney(text, exec); }
//コマンド実行と例外ハンドラ static void Execute(ExecuteDelegete execDelegete) { try { execDelegete(); } catch (MoneyShortException) { MessageBox.Show("お金が足りません"); } catch (InvalidOperationException e) { MessageBox.Show(e.Message, "エラー", MessageBoxButton.OK, MessageBoxImage.Information); } }
/// <summary> /// 確認して実行 /// 資金消費をする場合の例外ハンドリングも含む /// </summary> /// <param name="message">確認メッセージ</param> /// <param name="execDelegete">実行するメソッド</param> /// <param name="isShowMessage">確認メッセージを表示するか</param> private void ExecuteWithMoney(string message, ExecuteDelegete execDelegete, bool isShowMessage) { if (isShowMessage) { MessageBoxResult constructConfirm = MessageBox.Show(message, "", MessageBoxButton.YesNo); if (constructConfirm == MessageBoxResult.Yes) { Execute(execDelegete); } } else { Execute(execDelegete); } window.Close();
void Execute(string message, ExecuteDelegete exec) { MessageBoxResult constructConfirm = MessageBox.Show(message, "", MessageBoxButton.YesNo); if (constructConfirm == MessageBoxResult.Yes) { try { exec(); } catch (MoneyShortException) { MessageBox.Show("お金が足りません"); } taihisenChangeWindow.Close(); } }
/// <summary> /// 確認して実行 /// 資金消費をする場合の例外ハンドリングも含む /// </summary> /// <param name="message">確認メッセージ</param> /// <param name="execDelegete">実行するメソッド</param> protected void ExecuteWithMoney(string message, ExecuteDelegete executeDelegete) => ExecuteWithMoney(message, executeDelegete, true);
/// <summary> /// 実行 /// 資金消費をする場合の例外ハンドリングも含む /// </summary> /// <param name="executeDelegete">実行するメソッド</param> protected void ExecuteWithMoney(ExecuteDelegete executeDelegete) => ExecuteWithMoney(null, executeDelegete, false);
//Konstruktor public UserCommand(CanExecuteDelegate can, ExecuteDelegete exe) { this.CanExecuteMethod = can; this.ExecuteMethod = exe; }