【问题标题】:How to loop through WPF StackPanel static Items?如何循环遍历 WPF StackPanel 静态项?
【发布时间】:2010-11-28 02:11:39
【问题描述】:

可能很容易,但我很难弄清楚(谷歌似乎也没有多大帮助)。

如何遍历 StackPanel 的静态声明元素(无数据绑定 - 元素在 xaml 中声明)?

任何帮助表示赞赏!

【问题讨论】:

    标签: wpf elements stackpanel loops


    【解决方案1】:

    您是指StackPanel 的孩子吗?

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

    一个更通用的解决方案是使用LogicalTreeHelperVisualTreeHelper,这取决于您希望遍历的 WPF 树:

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

    【讨论】:

    • 谢谢 - 我自己发现了它,但你的答案很准确。我在寻找“物品”时找不到它!
    • 虽然 Kent 是 100% 正确的,但如果您直接在代码隐藏中编辑 XAML 对象,则很可能您没有在应该使用的地方使用数据绑定。但并非总是如此:)
    【解决方案2】:

    我的想法和 Johnldol 一样,因为我有一个孩子,而且我知道它的类型;我不想通过不必要的循环来掩盖我的代码。所以这就是我到达超链接内的 TextBlock 的方式:

            var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
            looper.MoveNext();
            TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-22
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      相关资源
      最近更新 更多