1

私のWP7アプリでは、このguysメソッドを使用してTextBlock内を検索していますToggleButtonhttps://stackoverflow.com/a/1759923/1339857

アプリの実行中に電話をかけると、正常に機能します。
からまったく同じ呼び出しを行おうとするとMainPage_LoadedFindChildが返されますnull

これが簡単な呼び出しです

TextBlock myText = FindChild<TextBlock>(myToggle, "toggleTitle");  
myText.Text = "Some text";

VisualTreeHelper.GetChildrenCountが0を返しているためのようです。

アプリが実行されているときに値が表示されるのに、値が表示されないのはなぜMainPage_Loadedですか?MainPage_Loadedイベントを開始する前に、アプリが読み込まれるまで待つのは目的ではありませんか?

ありがとう

4

1 に答える 1

5

これに対処するために使用できる 1 つのトリックは、Loaded イベントで呼び出しをキューに入れることです。したがって、 MainPage_Loaded ハンドラーで、呼び出しをDispatcher.BeginInvokeでラップします。

Dispatcher.BeginInvoke(() => {
  TextBlock myText = FindChild<TextBlock>(myToggle, "toggleTitle");  
  myText.Text = "Some text";
}

これにより、呼び出しがキューに追加され、現在のイベント サイクルが完了した後に呼び出されます (すべての子アイテムが読み込まれる必要があります)。

于 2012-04-24T23:02:10.940 に答える