2013-11-23 3 views
0

Попытка выяснить, почему это не работает, список состоит в том, чтобы извлекать фотографии с помощью элемента combobox (который содержит локальный адрес локального жесткого диска в качестве элементов), когда выбран тот элемент, который он преобразован в строку и предполагается использовать в качестве пути для метода GetFiles, но при запуске он закручивает строку (string path =), я получаю «объектную ссылку, не установленную в экземпляр объекта», которая очень ценится. Если кто-то может сказать мне, что происходит неправильноСписок не работает по методу GetFiles

public List<Photos> LoadImages ///List Retrieves and Loads Photos 
    { 

     get 
     { 
      List<Photos> Image = new List<Photos>(); 
      string path = HDDSelectionBox.SelectedItem.ToString(); //ComboBox SelectedItem Converted To String As Path 
      foreach (string filename in Directory.GetFiles(path, "*jpg")) 
      { 
       try 
       { 
        Image.Add(//Add To List 
         new Photos(
          new BitmapImage(
           new Uri(filename)), 
           System.IO.Path.GetFileNameWithoutExtension(filename))); 
       } 
       catch { } //Skips Any Image That Isn't Image/Cant Be Loaded 
      } 
      return Image; 
     } 
    } 
+0

Это скорее всего, означает, что либо «HDDSelectionBox», либо «HDDSelectionBox.SelectedItem» имеет значение NULL. Вы проверили это? – ChrisK

+0

мм Я читал это, но потому, что я учусь, поскольку я иду, это ново для меня, моя цель - загружать изображения только тогда, когда combobox isnt null, т. Е. Только после того, как пользователь выбрал элемент из combobox, я чувство, что он делает список прав, поскольку загрузка программы, которая тогда, конечно, была бы нулевой, начиналась бы с –

ответ

0

Вы должны поместить . перед расширением файла в строке:

Directory.GetFiles(path, "*.jpg") 

Кроме того, необходимо проверить, если HDDSelectionBox.SelectedItem не равно нулю:

public List<Photos> LoadImages ///List Retrieves and Loads Photos 
{ 
    get 
    { 
     List<Photos> images = new List<Photos>(); 
     if (HDDSelectionBox.SelectedItem != null) 
     { 
      string path = HDDSelectionBox.SelectedItem.ToString(); //ComboBox SelectedItem Converted To String As Path 
      foreach (string filename in Directory.GetFiles(path, "*.jpg")) 
      { 
       try 
       { 
        images.Add(//Add To List 
         new Photos(
          new BitmapImage(
           new Uri(filename)), 
           System.IO.Path.GetFileNameWithoutExtension(filename))); 
       } 
       catch { } //Skips Any Image That Isn't Image/Cant Be Loaded 
      } 
     } 
     return images; 
    } 
} 

Кроме того, это, вероятно, лучше всего подходит для метода, а не собственность, как это делает довольно много обработки ...

+0

, что является одной мелочью, спасибо за повышение, что –

+0

удивительный я просто блуждал и где мои новые списки линии пошли бы? приветствую помощь до сих пор, я подумал, что вернусь к проверке нулевого значения, но в настоящее время ожидает получения или установки доступа с добавлением оператора if. –

+0

Эта строка может быть проверена до проверки пустого мешка. Если HDDSelectionBox.SelectedItem имеет значение null, он вернет пустой список. – Szymon