如果我向 StackPanel 添加按钮,我应该在什么时候运行以下代码?就目前而言,它在我的 OnNavigatedTo 函数中。我必须使用“异步”属性声明它,因为我有一些代码可以从 SQLite DB 中获取记录。
问题是当我访问这个“查看记录”页面时,我可以看到按钮被一个一个地绘制(所以只需要一秒钟但有一定的延迟,没有按钮,然后是一个,然后是两个,然后是三个等),显示不会出现按钮已经存在,它们一次添加一个,这很明显(这是使用模拟器和实际设备时)。我想知道我是否只是误用了 OnNavigatedTo 事件并且应该更早地运行此代码?
我确实尝试在构造函数中完成大部分操作,但由于某种原因,我无法访问 NavgiationContext 对象(我认为就是这样),以便从查询字符串中获取记录 ID,而且我认为我不能声明具有 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 事件方法中。
谢谢