/// <summary>
        /// Adds question this view model will be based on
        /// NOTE: needs to be done before attaching this view model to the page
        /// </summary>
        /// <param name="question">The question to be attached to this viewmodel</param>
        /// <param name="ReadOnly">Indicates if this viewmodel is readonly</param>
        public void AttachQuestion(MultipleChoiceQuestion question, bool ReadOnly = false)
        {
            // Get the question
            Question = question;

            // Convert the list of string to list of ABCAnswerItemViewModel
            Options = ListConvertFromStringQuestion(Question.Options);

            IsReadOnly = ReadOnly;

            if (IsReadOnly)
            {
                // Set the correct answer selected so it's green initially
                Options[Question.CorrectAnswerIndex].IsSelected = true;

                // If the answer is null, return (means that the user gave no answer to this question)
                if (UserAnswer == null)
                {
                    NoAnswer = true;
                    return;
                }
                else
                {
                    if (question.CheckAnswer(UserAnswer) > 0)
                    {
                        IsAnswerCorrect = true;
                    }
                }

                // Set the user's answer selected so it's green
                Options[UserAnswer.SelectedAnswerIndex].IsSelected = true;

                // Mark the user's answer to display "Your answer" sign
                Options[UserAnswer.SelectedAnswerIndex].IsAnswerGivenByTheUser = true;

                // Indicate if the user's answer is correct
                Options[UserAnswer.SelectedAnswerIndex].IsAnswerCorrect = IsAnswerCorrect;
            }
        }