2009-09-14 57 views
7

おそらく非常に簡単ですが、私はこれを把握するのに問題があります(Googleもあまり役に立たないようです)。WPF StackPanel静的アイテムをループする方法は?

StackPanelの静的に宣言された要素(データ結合なし - 要素はxamlで宣言されています)をループする方法はありますか?

答えて

10

StackPanelさんの子供ですか?かかわらず、親の働くだろう

foreach (var child in stackPanel.Children) 
{ 
    //do something with child 
} 

より汎用的な解決策は、あなたが行き来したいものをWPFのツリーに応じて、LogicalTreeHelperまたはVisualTreeHelperを使用することです:

foreach (var child in LogicalTreeHelper.GetChildren(stackPanel)) 
{ 
    //do something with child 
} 
+1

ありがとうございます - あなた自身が答えを見つけました。 私は "Items"を探していたので、それを見つけることができませんでした! – JohnIdol

+0

Kentは100%正確ですが、コードビハインドでXAMLオブジェクトを直接編集している場合は、データバインディングを使用していない可能性が高い場合があります。必ずしもそうではありません:) –

0

私はJohnldolとしてちょうど同じ考え私の場合、私には1人の子供がいて、私はそのタイプを知っていたからです。私は不必要なループで自分のコードを隠したくありませんでした。ハイパーリンク内のTextBlockに到達したのはこれです。

 var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator(); 
     looper.MoveNext(); 
     TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock; 
関連する問題