【发布时间】:2013-11-18 02:12:55
【问题描述】:
我在单击事件处理程序中使用此代码,它将返回列表中的第二个项目。
private void nextbtn_Click(object sender, RoutedEventArgs e)
{
var sectorId = new QuizArgs
{
sector = "Food Production",
question = 2,
Total = 0
};
this.Frame.Navigate(typeof(Quiz), sectorId);
}
测验页面显示一个问题。列表中有 5 个问题,必须一次显示一个。
因此,当第一个问题加载到测验页面中并单击nextbtn 时,它应该重新加载包含列表中第二个问题的测验页面,依此类推,直到最后一个问题。
使用此代码加载测验页面
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
QuizArgs args = navigationParameter as QuizArgs;
var SectorGroups = QuizDataSource.GetGroups(args.sector);
this.DefaultViewModel["Groups"] = SectorGroups;
}
Object navigationParameter 表示发送者对象中与单击事件中相同的三个项目。这三个项目在页面之间传递。
当按钮被点击时,它应该会进入测验页面并加载第二个问题。
sectorId 中的 question 项应该代表当前要显示的问题。此项应逐页传递以跟踪列表中的问题。排队问题列表。
如何做到这一点,将列表中的问题排成队列,以便通过按钮单击按顺序依次显示它们一次?
问题列表定义为
private ObservableCollection<QuizGroups> _allQuizGroups = new ObservableCollection<QuizGroups>();
public ObservableCollection<QuizGroups> AllQuizGroups
{
get { return this._allQuizGroups; }
}
【问题讨论】:
-
你使用的是队列集合类型吗?还是它们出现的顺序无关紧要?
-
不,我没有使用队列集合类型。订单是根据id。第一个问题1,点击下一个按钮时,显示问题2,下一个按钮然后显示问题3等。
-
已更新,希望对您有所帮助:)
标签: c# visual-studio-2012 windows-8 indexing queue