【问题标题】:Enumerate child elements of a ListBoxItem枚举 ListBoxItem 的子元素
【发布时间】:2009-05-12 17:07:21
【问题描述】:

实际的视觉效果由 DataTemplate 决定。在运行时,如何遍历 ListBoxItem 的所有可视元素?

【问题讨论】:

    标签: wpf datatemplate listboxitem


    【解决方案1】:

    假设您引用了列表中的ListBoxItems 之一,您可以使用VisualTreeHelper 类来枚举它的可视化树。

    否则,如果您有对 ListBox 中显示的项目之一的引用,请尝试在 ListBox 之外调用 ItemContainerGenerator.ContainerFromItem()(请注意,必须显示该项目才能使其正常工作,因为 @987654327 @ 通常只保留内存中可见的项目)。

    【讨论】:

    • 这个答案对我来说不适用于 ItemsControl。在索引 0 处插入新项目后,我可以执行以下操作: var presenter = (ContentPresenter)_itemsControl.ItemContainerGenerator.ContainerFromIndex(0);不幸的是,VisualTreeHelper.GetChildrenCount(presenter) 为零!
    • 我做了一个快速测试应用程序,它对我有用。您可能想发布一个新问题并提供更多信息。
    【解决方案2】:

    把你需要这样做的原因放在一边……

    我认为您需要 VisualTreeHelper 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多