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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимосвязь TreeView и ListView 
:(
    Опции темы
Srg
Дата 10.4.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



user posted image

Подскажите пожалуйста, как реализовать такое вот взаимодействие?
Чтобы выбирая пункт из TreeView его "Свойства" отображались в ListView?

Какая должен быть файл по своей структуре чтобы можно было реализовать такое?

Подскажите плиз smile
PM MAIL   Вверх
_Dream
Дата 10.4.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 4.11.2006
Где: Там

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



а в чем сложность?
если у тя приложение без заморочек и все контролы видны на форме то просто пишешь в обработке события онКлик напр. передачу твоих данных(нужных для отображения) в листВью.. все вроде smile
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
Srg
Дата 10.4.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну для меня не все так просто...я не знаю как сделать передачу моих данных в ListView...
Я даже не знаю как правильно структурировать такой файл, чтобы все нормально передавать...smile
PM MAIL   Вверх
_Dream
Дата 10.4.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 4.11.2006
Где: Там

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



smile
так напиши что ты знаешь и что именно не можешь сделать а то так сложно чтото сказать
ЗЫ что значит структурировать файл? smile 

примерно так
1 выделяем что нам надо передать в таблицу с дерева
2 у листвью должно быть какое-нибудь свойство для хранения типа ДатаСорс(если нет то сделай наследника)
3 по событию онКлик на ноде дерева пиши листВью.ДатаСорс = что_надо_передать
все вроде.. там уже работаешь с полученной инфой

Это сообщение отредактировал(а) _Dream - 10.4.2007, 14:35
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
Srg
Дата 11.4.2007, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(_Dream @  10.4.2007,  14:32 Найти цитируемый пост)
2 у листвью должно быть какое-нибудь свойство для хранения типа ДатаСорс(если нет то сделай наследника)


smile Вот с этого места можно поподробнее smile

P.S. Ну под структурировать файл я имел в виду что лучше использовать для более менее простой реализации задуманного, то есть:
1. Где лучше хранить XML или Сериализованный файл

То есть должна быть возможность добавить конкретного нод в Трии и плюс к этому вывести его "доп. поля" в ЛистВью...smile
PM MAIL   Вверх
_Dream
Дата 11.4.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 4.11.2006
Где: Там

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



Код

// заполнение дерева взял из МСДН
private void initializeTree()
{
    TreeNode _node;
    for (int x = 0; x < 3; ++x)
    {
        // Add a root node.
        _node = treeView1.Nodes.Add(String.Format("Node{0}", x * 4));
        // тэг для хранения левой инфы - надо же нам чтото отображать :)
        _node.Tag = String.Format("Node{0} tag", x * 4);
        for (int y = 1; y < 4; ++y)
        {
            // Add a node as a child of the previously added node.
            _node = _node.Nodes.Add(String.Format("Node{0}", x * 4 + y));
            _node.Tag = String.Format("Node{0} tag", x * 4 + y);
        }
    }
}


// заполнение листвью.. сюда передаем наши данные
private void initializeListView(string nameColumnValue, object tagColumnValue)
{
    ListViewItem _item = new ListViewItem(nameColumnValue);
    _item.SubItems.Add(tagColumnValue.ToString());
    listView1.Items.AddRange(new ListViewItem[] { _item });
}

// ну и вешаем это на событие двойного клика по дереву
private void treeView1_DoubleClick(object sender, EventArgs e)
{
      // передаем данные с выбранного нода
    initializeListView(treeView1.SelectedNode.Text, treeView1.SelectedNode.Tag);
}


примерно так smile
 
а что значит 
Цитата

 Где лучше хранить XML или Сериализованный файл
 ?
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
Srg
Дата 12.4.2007, 04:37 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(_Dream @  11.4.2007,  10:40 Найти цитируемый пост)
а что значит 
Цитата

 Где лучше хранить XML или Сериализованный файл
 ? 


За код спасибо, вечером попробую smile

Где лучше информацию хранить в файле с XML структурой или в Файле в который записана какая-то структура?
PM MAIL   Вверх
_Dream
Дата 12.4.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 4.11.2006
Где: Там

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



какую информацию?
которую будем отображать  в листе?
а разве ее не динамически получаем из свойств обьекта дерева?
 smile 
в прикольное время постишь обычно  smile 

Это сообщение отредактировал(а) _Dream - 12.4.2007, 10:42
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
Srg
Дата 15.4.2007, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(_Dream @  12.4.2007,  10:16 Найти цитируемый пост)
какую информацию?
которую будем отображать  в листе?
а разве ее не динамически получаем из свойств обьекта дерева?


Конечно, изначально при загрузке формы Трии будет заполняться из какого-то файла и в последующем, возможно после изменений или добавлений в список, вся инфа будет сохраняться в файл...


 smile 
Так я ж в Хабаровске живу...smile
PM MAIL   Вверх
_Dream
Дата 18.4.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 4.11.2006
Где: Там

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



да разницы нет - можешь и в xml хранить smile
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
Srg
Дата 19.4.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Дак вот, как в XML формате будет выглядеть конкретная запись?
Например для TreeView
Root
      |
      |_____SubRoot1
      |                        |
      |                        |_____Record1
      |                        |
      |                        |_____Record2
      |                        |
      |                        |_____Record3
      |
      |_____SubRoot2
                               |
                               |_____Record1
                               |
                               |_____Record2
                               |
                               |_____Record3
и т.д smile

И причем при нажатии на Record1 в ListView будут выводиться несколько полей
Например:
Жмем на Record1 в TreeView записи такого вида 

Логин        Значение
URL            Значение
Коментс     Значение

Вот так вот...Для меня самое сложное как организовать XML файл для такой структуры, и как производить добавление, удаление, редактирование всего вот этого...

P.S. Очень надеюсь на помощь, т.к. до сдачи диплома осталось совсем мало времени smile
PM MAIL   Вверх
Naum
Дата 19.4.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

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



Srg, знаешь алгоритмы обхода деревьев?
Создаешь BinaryFormatter. Обходишь дерево и каждый лист сериализуешь в один и тот же файл. Потом по тому же алогоритму постепенно строишь из этого файла свое дерево.

Добавлено через 6 минут и 12 секунд
Про сериализацию ListView


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Srg
Дата 24.4.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Naum, smile Не знаю...

Можно поподробнее рассказать, про алгоритмы обхода дерева?

С сериализацией я уже разобрался более-менее, но вот как связать все вместе с Лист И Трии вью и файлом, пока не понимаю...:(
PM MAIL   Вверх
Naum
Дата 24.4.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

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



Вот простейшая рекурсивная функция обхода дерева. (Прошу обратить внимание это только алгоритм, типы могут не совпадать - пишу без студии)
Код

void SerializeChilds (TreeNode root)
{
   foreach(TreeNode child in root.GetChilds())
   {
      SerializeChilds(child);
   }
   DoSomethingElse(child);
}



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
Srg
Дата 2.5.2007, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



То есть получаеться, что мы сериализуем все то, что находиться в TreeNode начиная с root?

Немного непонятно, как мне связать это все с файлом, получаеться файл должен быть уже сериализован таким способом, чтобы потом его десериализовать? smile


И еще, у Нода возможен только один Tag? Или есть возможность сделать их много, и уже сериализовать только TreeNode со всеми нодами и тагами?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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