Самый простой способ - просто поменять DataContext на странице.Так что не привязывайтесь к списку, привязывайте к отдельным элементам в списке.
private List<Question> _questions = new List<Question>();
private int _currentItem = 0;
private void nextButton_Click(object sender, RoutedEventArgs e)
{
_currentItem++;
this.DataContext = _questions[_currentItem];
}
private void backButton_Click(object sender, RoutedEventArgs e)
{
_currentItem--;
this.DataContext = _questions[_currentItem];
}
Теперь, очевидно, вам нужно будет добавить проверку границ, чтобы убедиться, что вы не пропустили последний вопрос или до того, какПервый вопрос, но вы поняли.
Если вы используете MVVM, идея почти такая же - вы хотите, чтобы модель представления моделировала отдельный элемент, а не список элементов, а затем просто поменяйте местами данные для этого текущего элемента при переходе вперед илив обратном направлении.