none
Добавление списка файлов в listbox из выбранной директории (WPF) RRS feed

  • Вопрос

  • Здравствуйте.

    Я только недавно начал изучать С# и поэтому прошу прощения если мой вопрос слишком тривиален.

    Имеется 3 элемента управления ComboBox с заранее определенным списком, Кнопка и ListBox.

    Есть следующая задача: При выборе одного из элементов списка ComboBox и нажатии кнопки необходимо чтобы в ListBox'e выводился список файлов из директории стоящей за выбранным элементом списка ComboBox.

    Решения данной задачи легко добился в Windows Forms, часть кода выглядит так:

    if (comboBox1.Text == "Табель учета рабочего времени")
     {
     spg = "ТабельУчетаРабочегоВремени";
     var dir = new System.IO.DirectoryInfo(Application.StartupPath + @"\Шаблоны\"+spg+@"\");
     var files = dir.GetFiles("*.*");
     listBox1.Items.Clear();
     listBox1.Items.AddRange(files);
     listBox1.DisplayMember = "Name";
     }

    В таком варианте всё хорошо работало.

     Но при попытке реализовать туже самую задачу на WPF столкнулся с проблемой отсутствия метода AddRange и немогу найти альтернативу его замены. При использовании метода Add всегда добавляется лишь 1 файл из множества...

    Надеюсь на вашу помощь в решении проблемы!

    10 февраля 2011 г. 1:49

Ответы

  • или так

        private void button1_Click(object sender, RoutedEventArgs e)
        {
          var dir = new System.IO.DirectoryInfo("C:\\");
          FileInfo[] files = dir.GetFiles("*.*");
          listBox1.Items.Clear();
          listBox1.ItemsSource = files;
          listBox1.DisplayMemberPath = "Name";
        }
    

    • Предложено в качестве ответа Nikonorov Evgeniy 10 февраля 2011 г. 2:21
    • Помечено в качестве ответа Abolmasov Dmitry 10 февраля 2011 г. 5:42
    10 февраля 2011 г. 2:19

Все ответы

  • можете попробывать так)

        private void button1_Click(object sender, RoutedEventArgs e)
        {
          var dir = new System.IO.DirectoryInfo("C:\\");
          var files = dir.GetFiles("*.*");
          listBox1.Items.Clear();
          
          foreach (FileInfo fi in files)
          {
            listBox1.Items.Add(fi);
          }
          listBox1.DisplayMemberPath = "Name";
        }
    

    10 февраля 2011 г. 2:09
  • Всё работает!

    Благодарю за помощь и столь скорый ответ!

    10 февраля 2011 г. 2:14
  • или так

        private void button1_Click(object sender, RoutedEventArgs e)
        {
          var dir = new System.IO.DirectoryInfo("C:\\");
          FileInfo[] files = dir.GetFiles("*.*");
          listBox1.Items.Clear();
          listBox1.ItemsSource = files;
          listBox1.DisplayMemberPath = "Name";
        }
    

    • Предложено в качестве ответа Nikonorov Evgeniy 10 февраля 2011 г. 2:21
    • Помечено в качестве ответа Abolmasov Dmitry 10 февраля 2011 г. 5:42
    10 февраля 2011 г. 2:19