在我的WP7应用中,我使用这个人方法在TextBlock
内找到ToggleButton
。
https://stackoverflow.com/a/1759923/1339857
当我在应用程序运行时拨打电话时,它可以正常工作
如果我尝试从MainPage_Loaded
拨打完全相同的电话,FindChild
会返回null
。
这是简单的电话
TextBlock myText = FindChild<TextBlock>(myToggle, "toggleTitle");
myText.Text = "Some text";
看起来好像是因为VisualTreeHelper.GetChildrenCount
返回0。
为什么在应用运行时却没有来自MainPage_Loaded
的值?问题的目的是MainPage_Loaded
等待应用程序加载后再触发事件吗?
由于
答案 0 :(得分:5)
您可以使用的一个技巧是在Loaded事件上排队调用。因此,在MainPage_Loaded处理程序中将您的调用包装在Dispatcher.BeginInvoke中。
Dispatcher.BeginInvoke(() => {
TextBlock myText = FindChild<TextBlock>(myToggle, "toggleTitle");
myText.Text = "Some text";
}
这会将您的调用添加到队列中,并在当前事件周期完成后调用它(这应该是在加载了所有子项时)。