おそらく非常に簡単ですが、私はこれを理解するのに苦労しています(また、Googleはあまり役に立たないようです)。
StackPanelの静的に宣言された要素(データバインディングなし-要素はxamlで宣言されています)をループするにはどうすればよいですか?
助けていただければ幸いです。
おそらく非常に簡単ですが、私はこれを理解するのに苦労しています(また、Googleはあまり役に立たないようです)。
StackPanelの静的に宣言された要素(データバインディングなし-要素はxamlで宣言されています)をループするにはどうすればよいですか?
助けていただければ幸いです。
あなたは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人いて、そのタイプを知っていたので、ジョンドルとまったく同じように考えました。不必要なループでコードを覆い隠したくありませんでした。これが、ハイパーリンク内のTextBlockに到達した方法です。
var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
looper.MoveNext();
TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;