| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Как получить текст дочернего TreeViewitem |
| Автор: vinograd2008 9.10.2011, 19:01 |
| Есть дерево treeView А Африка Кофе Б Бразилия Кофе2 Как сделать программно так чтобы при выборе TreeViewItem Африка в первое текстовое поле записывалось Африка и во второе текстовое поле записывалось кофе, а если выбираю Бразилия то во второе текстовое поле записывается Кофе2? Т.е. как считать текст дочернего элемента TreeViewitem? |
| Автор: Gvozdin 9.10.2011, 23:02 | ||||
| Идея сего токова: 1. Получаем дочерний TreeViewItem по нашему дочернему айтему: var childTreeItem = this.ItemContainerGenerator.ContainerFromItem(this.Items[0]) 2. Находим заголовок айтема: var header = VisualHelper.FindVisualChild<FrameworkElement>(childTreeItem, "PART_Header") 3. Находим текст бокс который нам нужет: var ourSuperTextBox = VisualHelper.FindVisualChild<TextBox>(header, "SuperTextBoxName") 4. Радуемся НО ЭТО ВСЁ ПОЛНАЯ ФИГНЯ! Хождение по визуальному дереву в основном необходимо для реализации технологических вещей в приложении, логика же приложения пусть остается логикой приложения и в визуальное дерево не лезет. Иначе получаются вот такие вот вопросы, которые просто не возникли бы при другом подходе. 1. Класс ModelView для элемента дерева:
2. Байндим TextBox.Text на TextBoxValue, а ItemsSource в HierarchicalDataTemplate на Children 3. Делаем обработчик клика на элементе дерева:
ВСЕ! |