2017-03-24 9 views
0

私はXamarinのためのPCLを使用して簡単なアプリケーションを持っているが、lvl1.xaml.csと呼ばれる私の見解の中に私はデシベル更新ビュー

public lvl1() 
{ 
     ques = App.Database.GetQuest(); 
     user = App.database.GetUser(); 
     BindingContext = ques; 
     correctAns = ques.correctAns; 
     InitializeComponent(); 
} 

から新しい質問を求める方法を持っている問題は、あります私は答えが正しいかどうかを言うDisplayAlertを持っていますが、ユーザーがクリックを続けるとすぐに新しい質問をロードしたいので、この関数(lvl1.xaml.csの中にあります)を持っています。コンストラクタに移動して新しい質問が表示されることを確認しても、古い質問が表示されますが、どのように更新/バインドを正しく行うことができますか?

async void GameContinue(bool continues) 
    { 
     if (continues) 
     { 
      var lvl = new lvl1(); 
     } 
     else 
     { 
      await Navigation.PopToRootAsync(); 
     } 
    } 

ありがとうございました!

答えて

2

var lvl = new lvl1()に電話すると、アプリのバックグラウンドで新しいページが作成されますが、実際にナビゲートすることはありません。それで、あなたは新しい質問を見ないのです。作成した新しいページを実際に表示するには、Navigation.PushAsnyc(lvl);に電話する必要があります。

また、別の方法を作成して新しい質問を作成し、毎回新しいページを作成する必要がないようにすることもできます。あなたのコンストラクタで次に

asnyc void getNewQuestion() 
{ 
    //Get question from db and set the binding context 
    ques = App.Database.GetQuest(); 
    user = App.database.GetUser(); 
    BindingContext = ques; 
    correctAns = ques.correctAns; 
} 

public lvl1() 
{ 
    getNewQuestion(); 
    InitializeComponent(); 
} 

以降DisplayAlert

async void GameContinue(bool continues) 
{ 
    if (continues) 
    { 
     getNewQuestion(); 
    } 
    else 
    { 
     await Navigation.PopToRootAsync(); 
    } 
}