PDA

Просмотр полной версии : Как перейти к нужному узлу в Tree


Tavy
22.01.2008, 17:05
Задача: Навигация по меню, реализованному с помощью Tree, кнопочками "вперед" и "назад".
Вопрос:

1. Есть ли удобный механизм для хранения "пути" в дереве к текущему, выделенному элементу-листику? Прошу прощения если вопрос тупой, но я не сообразила как.

2. Как заставить компонент Tree перейти к определенному узлу? Читала аналогичную тему про DataGreed (http://www.flasher.ru/forum/showthread.php?t=105975), но в данном компоненте указанных там методов нет.

Ещё раз прошу прощения. Я учусь, читаю документацию, но некоторые вещи без подсказки даются туго.

Sneg
22.01.2008, 18:02
1) "Удобного механизма" нет, но можно хранить историю выбранных элементов в массиве и используя selectedItem и expandItem скакать по ним как угодно.
2) Tree тоже наследуется от List'a, так же как DataGrid. Каких методов указанных там у него нет?

Tavy
23.01.2008, 13:43
Спасибо большое. С пунктом 2 просто не туда смотрела.

Tavy
23.01.2008, 15:39
По пункту 1.

В дата провайдере все видные пользователю элементы имеют порядковый номер, Index. Получаю я его с помощью простого MyTree.selectedIndex Есть ли обратная операция? Т.е. как зная его обратиться к элементу? Это было бы самым простым решением проблемы, мне ведь многого не надо, просто переход к следующему/предыдущему в структуре.

Пробовала передавать в рабочую функцию TreeMenu.dataProvider as XMLListCollection или как XMLListCollection

При этом getItemAt возвращает корневой XML-объект, при параметре не равном 0 вообще не работает - логично, в хелпе написано что XML имеет всегда длину 1. А как мне обратиться к неиерархическому представлению моего списка элементов?

Никаких подходящих методов кроме getItemAt не обнаружила. Но если этот порядковый индекс есть, должен же быть способ по нему обратиться к элементу!

MaxD
28.01.2008, 14:10
Так что конкретно нужно получить?
У меня есть пример: на странице слева дерево со структурой папок на диске, справа Канвас, в котором отображаются файлы из выбраной в дереве папки. Клик на дереве - в канвасе видим соотв. файлы, клик на канвасе - в дереве подсвечивается папка, которой принадлежит файл. Поможет?

Tavy
29.01.2008, 19:00
Да, поможет!