When the ContextMenu is open, CommandParamter being passed to Command is initially null, which disables Command as specified. If Command.CanExecute always return true, this is not a problem, as Command.Execute eventually gets the correct CommandParameter. In some cases, Command is not allowed to execute if CommandParamter is null, so this becomes a problem.