public override Control VisitQuestionReference(QuestionReference questionRef) { var question = _questionForm.GetAllQuestions().Where(q => q.Name == questionRef.Name).SingleOrDefault(); if (question != null) { StyleSet questionStyles = _questionStyles.GetStyleSet(question.Name); QuestionWidget questionWidget = (QuestionWidget)questionStyles.WidgetStyle.CreateWidgetControl(new WidgetFactory(question)); questionWidget.ApplyStyles(questionStyles); _questionWidgets.Add(questionWidget); return(questionWidget); } else { throw new ApplicationException("Question not found in the questionnaire AST."); } }