예제 #1
0
            public override void Execute(object parameter)
            {
                string          text = vm.IsReduceOrRemoveLane() ? $"この路線を削減します。よろしいですか?" : "この路線を廃止します。よろしいですか?";
                ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteRemoveLane);

                vm.ExecuteWithMoney(text, exec);
            }
예제 #2
0
            public override void Execute(object parameter)
            {
                string          text = $"この路線を増設するには{LogicUtil.AppendMoneyUnit(vm.CalcAddLaneCost())}かかります。よろしいですか?";
                ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteAddLane);

                vm.ExecuteWithMoney(text, exec);
            }
예제 #3
0
            public override void Execute(object parameter)
            {
                string          text = $"この路線の電化設備を撤去します。よろしいですか?";
                ExecuteDelegete exec = new ExecuteDelegete(vm.ExecuteHidenka);

                vm.ExecuteWithMoney(text, exec);
            }
예제 #4
0
            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);
            }
예제 #5
0
 //コマンド実行と例外ハンドラ
 static void Execute(ExecuteDelegete execDelegete)
 {
     try
     {
         execDelegete();
     }
     catch (MoneyShortException)
     {
         MessageBox.Show("お金が足りません");
     }
     catch (InvalidOperationException e)
     {
         MessageBox.Show(e.Message, "エラー", MessageBoxButton.OK, MessageBoxImage.Information);
     }
 }
예제 #6
0
        /// <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();
예제 #7
0
        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();
            }
        }
예제 #8
0
 /// <summary>
 /// 確認して実行
 /// 資金消費をする場合の例外ハンドリングも含む
 /// </summary>
 /// <param name="message">確認メッセージ</param>
 /// <param name="execDelegete">実行するメソッド</param>
 protected void ExecuteWithMoney(string message, ExecuteDelegete executeDelegete) => ExecuteWithMoney(message, executeDelegete, true);
예제 #9
0
 /// <summary>
 /// 実行
 /// 資金消費をする場合の例外ハンドリングも含む
 /// </summary>
 /// <param name="executeDelegete">実行するメソッド</param>
 protected void ExecuteWithMoney(ExecuteDelegete executeDelegete) => ExecuteWithMoney(null, executeDelegete, false);
예제 #10
0
 //Konstruktor
 public UserCommand(CanExecuteDelegate can, ExecuteDelegete exe)
 {
     this.CanExecuteMethod = can;
     this.ExecuteMethod    = exe;
 }