Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно обойти TreeView в WPF? Обход TreeView, TreeViewItem 
:(
    Опции темы
vinograd2008
Дата 8.4.2012, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.12.2008

Репутация: нет
Всего: нет



Как правильно обойти TreeView в WPF и вывести текст родительских и дочерних узлов? Причем к каждому узлу добавлено ещё два дочерних узла Термины и Подразделы нужно получать текст каждого такого узла и текст узлов, которые находятся в узлах Термины и Подразделы.

Item1
         Термины
             Элемент списка1
             Элемент списка2
Подразделы
   Item1.1 
    - Термины
      - Элемент списка3
      - Элемент списка4
   - Подразделы
       - Item1.1.1
          - Термины
             - Элемент списка5
             - Элемент списка6
         - Подразделы
             Item1.1.1.1

Код обхода:

Код


 foreach (TreeViewItem mPti in treeviewRazdel.Items)
                {
                    System.Windows.MessageBox.Show(mPti.Header.ToString());

                    if (mPti.Items.Count != 0)
                    {
                        foreach (TreeViewItem pmxnt in mPti.Items)
                        {
                            System.Windows.MessageBox.Show(pmxnt.Header.ToString());

                            if (pmxnt.Header.ToString() == "Термины")
                            {
                                foreach (TreeViewItem dmx in pmxnt.Items)
                                {
              System.Windows.MessageBox.Show(dmx.Header.ToString());
                                }
                            }

                            if (pmxnt.Header.ToString() == "Подразделы")
                            {
                                foreach (TreeViewItem pmx in pmxnt.Items)
                                {
             System.Windows.MessageBox.Show(pmx.Header.ToString());

                                    foreach (TreeViewItem pxx in pmx.Items)
                                    {
                                        if (pxx.Header.ToString() == "Подразделы")
                                        {
                                            foreach (TreeViewItem phk in pxx.Items)
                                            {
                     System.Windows.MessageBox.Show(phk.Header.ToString());
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }



Этот код работает, но у меня TreeViewItemы подразделы и термины создаются по кнопке и для новых созданных обход не будет работать. Как создавать TreeViewItem динамически и во время обхода в цикле и получать его текст. Желательно чтобы не приходилось создавать кучу новых foreach и TreeViewItem, а обход был сделан за пару циклов. Т.е. нужно отдельно получить item1 и его узлы, отдельно item1.1 и его узлы и т.д. до конца дерева что то наподобия обхода в глубину.
PM MAIL   Вверх
agitprop
Дата 5.5.2012, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.3.2012

Репутация: нет
Всего: нет



если еще актуально - используйте рекурсию. традиционно для деревьев.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0387 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.