Есть наследник ItemsControl (скажем, TreeView). Необходимо получить один из его дочерних элементов TreeViewItem. Свойство TreeView.Items содержит коллекцию данных, привязанных к TreeView, а не самих TreeViewItem.
Как получить доступ к одному из дочерних элементов ItemsControl в WPF?
Новые ответы
ItemsControl
генерирует элементы посредством интерфейса IItemContainerGenerator
. Свойство ItemContainerGenerator
ItemsControl
является типом ItemContainerGenerator
, реализующим интерфейс IItemContainerGenerator
. Таким образом можно вызвать объект ItemContainerGenerator
, связанный с ItemsControl
, с помощью свойства ItemContainerGenerator
. Например, при наличии привязки данных TreeView
и необходимости получения TreeViewItem
на базе его индекса или его связанного элемента данных можно использовать ItemContainerGenerator.ContainerFromIndex
или метод ItemContainerGenerator.ContainerFromItem
. Кроме того, можно использовать ItemContainerGenerator.IndexFromContainer
или метод ItemContainerGenerator.ItemFromContainer
для получения элемента индекса или данных, связанного с заданным сгенерированным элементом контейнера.