2011-07-22 11 views
0

データソースを使用してレコードを処理したいのですが、ページごとに1つずつデータソースを使用したいと考えています。別ページのデータバインド方法

私はページ全体を1つのレコードに専用したいと考えています。

どうすればいいですか?

+1

シナリオについてもう少し具体的にお考えですか? – 1adam12

+0

私はテスト問題のデータソースを持っており、一度に1つの質問のみを画面上に表示したいと思っています。選択肢が選択されると、アプリは次の質問に移動します。ページ上のボタンを使って前後に移動するようにデータソースに指示したいと思います。 –

答えて

0

最も簡単な方法は、ページ上の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を使用している場合、アイデアはほぼ同じです。ビューモデルがアイテムのリストではなく単一のアイテムをモデル化し、前方または後方にナビゲートするときにその現在のアイテムのデータをスワップするだけです。

+0

this.DataContextは私が見つからなかったものです。それでは '{binding QuestionText}'をリストに表示するだけですか? –

関連する問題