ボタンを StackPanel に追加する場合、次のコードをいつ実行する必要がありますか? 今のところ、それは私の OnNavigatedTo 関数にあります。SQLite DB からレコードをフェッチするコードがあるため、「async」プロパティを使用して宣言する必要があります。
問題は、この「レコードの表示」ページにアクセスすると、ボタンが 1 つずつ描画されているのを確認できることです (したがって、1 秒しかかかりませんが、明確なラグがあり、ボタンがなく、次に 1 つ、次に 2 つ、次に 3 つ表示されます)。など)、ボタンが既に存在する状態でディスプレイが表示されず、一度に 1 つずつ追加されており、非常に明白です (これは、エミュレーターと実際のデバイスを使用している場合です)。OnNavigatedTo イベントを誤って使用しただけで、このコードを以前に実行する必要があるのではないかと思いました。
私はコンストラクターでそのほとんどを試してみましたが、何らかの理由で、クエリ文字列からレコード ID を取得するために NavgationContext オブジェクトにアクセスできませんでした (それがそうだったと思います)。宣言できないと思いますaysnc プロパティを持つコンストラクター。コンストラクターで initializeComponent() メソッドが呼び出される前にコードを実行するとうまくいくと思いますか?
// Add ButtonStackPanel
StackPanel ButtonStackPanel = new StackPanel();
ButtonStackPanel.Name = "ButtonStackPanel";
MainStackPanel.Children.Insert(2, ButtonStackPanel);
// Add Buttons
while (await statement.StepAsync())
{
Button button = new Button();
button.Click += this.disease_Click;
button.Content = Names[statement.GetTextAt(0)];
button.FontSize = 28;
button.Height = 80;
ButtonStackPanel.Children.Add(button);
}
物事を行う順序に関する一般的なアドバイスを探しているだけで、コードの大部分を OnNavigatedTo イベントメソッドに入れても問題ないかどうか。
ありがとう