/// <summary> /// 並列化サーバーへの接続コマンドが実行可能か調べます。 /// </summary> private static void CanExecuteConnect(object sender, CanExecuteRelayEventArgs e) { var bonanza = Global.Bonanza; if (bonanza == null) { e.CanExecute = false; return; } e.CanExecute = (!bonanza.IsConnected && bonanza.AbortedReason == null); }
/// <summary> /// Redo操作が可能か調べます。 /// </summary> private static void CanExecuteRedo(object sender, CanExecuteRelayEventArgs e) { var element = e.Parameter as GLShogiElement; if (element == null) { throw new ArgumentNullException("element"); } if (element.Board == null) { throw new InvalidOperationException( "element.Boardがnullです。"); } e.CanExecute = element.Board.CanRedo; }
/// <summary> /// Redo操作が可能か調べます。 /// </summary> private static void CanExecuteRedo(object sender, CanExecuteRelayEventArgs e) { var element = e.Parameter as GLShogiElement; if (element == null) { throw new ArgumentNullException("element"); } if (element.Board == null) { throw new InvalidOperationException( "element.Boardがnullです。"); } // 編集可能でない場合は、Redo/Undoなども禁止します。 if (element.EditMode != EditMode.Normal) { e.CanExecute = false; return; } e.CanExecute = element.Board.CanRedo; }