Checking a Model's function's return value and setting values to a View member
Don't call List&lt;T&gt; "somethingList" -- e.g. if they are questions, call it questions, not questionList.



Why do you do List&lt;List&lt;string&gt;&gt; questionList = new List&lt;List&lt;string&gt;&gt;(); if the next step is questionList = _model.GetQuestions();? Instead don't bother with the initialization and just assign it directly: var questionList = _model.GetQuestions();



List&lt;List&lt;string&gt;&gt; is a warning sign to me that your design is probably flawed, and when I look at the context -- a list of questions and a separate list of answers -- I fear that your code has far worse issues than the reason for this question.



Is there a reason you're doing this in an "outdated" technology like WinForms when WPF etc. exists? There is a strong link between data and UI in this method, which is a frequent issue with WinForms; if this was WPF you could implement MVVM to separate those concerns.