我在 wpf c# 中执行此操作,我正在尝试从数据库中填充一些记录。有 21 条记录。
这是我的代码的样子:
private void PopulateQuestion(int activityID, int taskID)
{
IList<ModelSQL.question> lstQuestion = qn.GetRecords(taskID, activityID);
for( int i= 0 ; i<=lstQuestion.Count()-1; i++)
{
TextBlock tb = new TextBlock();
tb.FontSize = 19;
tb.FontWeight = FontWeights.Bold;
tb.Text = lstQuestion[i].QuestionContent;
tb.TextWrapping = TextWrapping.WrapWithOverflow;
wrapPanel1.Children.Add(tb);
TextBox tbox = new TextBox();
if (lstQuestion[i].Answer.Trim().Length > 0)
{
tbox.FontSize = 19;
tbox.Width = 100;
tbox.Height = 40;
tbox.PreviewDrop += new DragEventHandler(tbox_PreviewDrop);
tbox.Focusable = false; // Disallow user to input anything into it.
wrapPanel1.Children.Add(tbox);
}
answers.Add(lstQuestion[i].Answer);
if (lstQuestion[i].QuestionNo != lstQuestion[i + 1].QuestionNo)
{
StackPanel sp = new StackPanel();
sp.Width = 1010;
// wrapPanel1.Children.Add(sp);
Label spacing = new Label();
spacing.Width = 1038;
spacing.Content = "";
wrapPanel1.Children.Add(spacing);
}
} // end of for each loop.
}
我不知道什么是相关的,什么不是,所以我只是发布了 for 循环所在的部分。有lstQuestion.Count()
21 个计数,即来自数据库的 21 条记录,但是我收到了这个错误:
{"索引超出范围。必须为非负数且小于集合的大小。\r\n参数名称:索引"}
所以,我想与i <=lstQuestion.Count()的 for 循环有关。
我试图把i<=lstQuestion.Count()-2,
它有效,但不显示最后 2 条记录,它显示 19 条记录而不是 21 条。
如何更改 for 循环以显示所有 21 条记录?
我不能使用 foreach 循环,因为我需要在当前循环中找到下一个循环值。