c# древо папок visual studio

493
25 июля 2017, 16:03

Народ подскажите есть задача, есть папка где есть подпапки и в них ссылки, мне нужно сделать wpf приложение разделенное визуально на две части, в одной части будут папки а в другой ссылки хранящиеся в этих папках которое можно будет кликом открыть, подскажите как можно реализовать подобное с помощью каких элементов хотя бы на толкните на мысль

Answer 1

Ваши ингредиенты:

  • TreeView - для отображения древовидной структуры папок.
  • ListBox - что бы отобразить файлы в папке; или любой другой элемент управления списками.
  • Directory - для получения списка папок и файлов.
  • Prism, MvvmLight или любой другой MVVM-фреймворк.

Затем:

  • Создаете WPF-проект.
  • Создаете Model'и, которые будут представлять ваши файлы, папки и т.п.
  • Создаете VewModel, которая будет содержать вашу логику, например, по отображению файлов в папке. Во VewModel пригодится:
    • коллекция, которая будет содержать древовидный список ваших папок.
    • свойство, которое будет представлять выбранную в дереве папку.
    • коллекция, которая будет содержать список файлов для выбранной папки.
  • Далее осуществляете привязку свойств из ViewModel с View.
  • Затем рекурсивно (рекурсию нужно реализовать самому) получаете список папок, метод Directory.GetDirectories может вам в этом помочь, преобразуете их в ваш тип модели, представляющих папку и добавляете в коллекцию содержащую список ваших папок.
  • При выборе в элементе TreeView конкретной папки, получаете список файлов, содержащихся в ней, используя, например, Directory.GetFiles. После чего преобразуете их в тип модели, представляющих ваш файл и добавляете в коллекцию, отображающую список файлов для выбранной папки.
READ ALSO
Вопросы моделирования: Entity или ValueObject (DDD)?

Вопросы моделирования: Entity или ValueObject (DDD)?

Имеется сущность "Клиент" (Customer)Клиент может иметь 1 номер мобильного телефона и 1 адрес электронной почты

233
Запись/чтение файла Guitar Pro (*.gtp) с помощью c#

Запись/чтение файла Guitar Pro (*.gtp) с помощью c#

Может какую-нибудь либу посоветуетеили просто принцип работы с такими файлами

342
Печать и обновление графика в реальном времени OxyPlot - Windows Form

Печать и обновление графика в реальном времени OxyPlot - Windows Form

Пишу академическую программу - монитор частотыДля печати графиков использую Nuget Oxylot

342