![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
CasperSC |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Начал писать простое дерево, для получения списка папок, хочу сделать, чтобы они в TreeView отображались в виде дерева, как в Explorer. То есть, чтобы были плюсики слева, нажимаешь и расскрывается список папок содержащийся в папки на которыю нажали. Я что-то вообще не могу понять, как это сделать. Не замудрённым кодом, а на примере моего. Или я что-то не то делаю? Я просто не пойму никак, что сделать, чтобы отображался список папок. У меня почему-то отображается названия типов элементов добавляемых в TreeView. И пусть я даже сделаю дерево с вложенными элементами, то у меня всё равно отображаются просто названия корневого списка. Ничего не понимаю...
Я впервые это делаю, так что мог и написать немного не то.
Вот, что получается в итоге: (Превью, увеличение по клику) ![]() Что не так делаю? И как вообще создать список папок как в эксплорере? Это сообщение отредактировал(а) CasperSC - 17.11.2010, 13:18 |
||||||
|
|||||||
WolfTheGrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 21.1.2009 Где: forum.vingrad.ru Репутация: 2 Всего: 2 |
Да, ты прав. Все не правельно.
И скажи честно. откудова ты этот код взял? Он какраз то ки и есть мегосупер замудренный. |
|||
|
||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Сам написал. Не откуда я его не копировал. Я хотел сам попробовать написать это дело всё, но ничего не получилось. Вообще этот WPF замудрён. С чего вы взяли, что я его откуда-то скопировал? Что там сложного в нём? Обобщённая коллекция, которая как-то там сообщает о изменениях, хранит дочерние узлы. И поле хранящее путь к папке. Ну и конструктора два, короче синтаксис С# я более менее знаю, но с конкретно WPF не лады пока. Я вот всякие там IEnumerator'ы пока не особо понимаю, знать бы где про это дело можно почитать подробно, где написано человеческим языком.
Так, что не правильно то? Я просто не пойму, что там нужно вообще сделать, чтобы в результате получить, то о чём писал в первом своём сообщении. Update: Кстати я в курсе, что для получения всего дерева, надо получить все папки, пройдясь по ним рекурсивно в цикле например. Меня интересует, как вообще дерево сделать, чтобы отображалось примерно как в эксплорере. Это сообщение отредактировал(а) CasperSC - 17.11.2010, 16:31 |
|||
|
||||
WolfTheGrey |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 21.1.2009 Где: forum.vingrad.ru Репутация: 2 Всего: 2 |
Суть заключается в том, что TreeWiew хранит в себе коллекции TreeWiewItem, которые тоже в себе хранат коллекции TreeWiewItem.
Вот код:
писал от себя, но студия одобрила (ошибок нет). Благодарности не надо ![]() Если хочешь могу развить тему в сторону биндинга. стилей, и тем.... ?? Добавлено через 4 минуты и 41 секунду Я использовал событие TreeViewItem.Expanded, чтоб код срабатывал на открытие, и осматривал только заданную папку, а не шерстил весь диск. |
||||
|
|||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
О, спасибо! Не тестил ещё, но в общем мне надо было самому догадаться, что надо добавлять TreeViewItem'ы в TreeView, по сути это же очевидно =). Я просто на этих ItemSource зациклился и это меня сбило с толку.
Конечно. Если вы серьёзно, то можно развить тему в ту сторону. Это сообщение отредактировал(а) CasperSC - 17.11.2010, 16:38 |
|||
|
||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Странно, но почему-то событие не срабатывает. Я ставил точку останова, не срабатывает и всё.
Это сообщение отредактировал(а) CasperSC - 18.11.2010, 10:08 |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 2 Всего: 38 |
Суть в использовании HierarchicalDataTemplate
http://www.switchonthecode.com/tutorials/w...nd-the-treeview http://blogs.msdn.com/b/mikehillberg/archi...into-a-bar.aspx -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |