2012-01-12 31 views
-8

與對象引用另一個問題......空引用異常選擇一個項目

最近,我拿起了我在C#中做了一箇舊的項目,但是當我嘗試在我的列表框中選擇一個項目,一個時「未設置對象的實例的對象引用」發生。

我的代碼:

private void listBoxAddons_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string selectedItem = Convert.ToString(listBoxAddons.SelectedItem); 
     XDocument xmlDoc = XDocument.Load(Settings.xmlPath); 
     var q = from c in xmlDoc.Descendants("part") 
       where c.Element("name").Value == selectedItem 
       select new 
       { 
        name = c.Element("name").Value, 
        category = c.Element("category").Value, 
        desc = c.Element("desc").Value, 
        manu = c.Element("manu").Value, 
        author = c.Element("author").Value, 
        imageLocation = c.Element("image").Value, 
        download = c.Element(@"download").Value 
       }; 
     foreach (var obj in q) 
     { 

      labelName.Text = obj.name; 
      labelCategory.Text = obj.category; 
      labelDesc.Text = obj.desc; 
      labelManu.Text = obj.manu; 
      labelAuthor.Text = obj.author; 
      pictureBox1.ImageLocation = obj.imageLocation; 
      download = obj.download; 
     } 
    } 

感激在正確的方向上沒有任何幫助!

編輯:

的Visual Studio指向這些字符時出現錯誤:

new 
        { 
         name = c.Element("name").Value, 
         category = c.Element("category").Value, 
         desc = c.Element("desc").Value, 
         manu = c.Element("manu").Value, 
         author = c.Element("author").Value, 
         imageLocation = c.Element("image").Value, 
         download = c.Element(@"download").Value 
        } 
+4

哪一行給出錯誤?當你知道這個問題時,問題會很明顯。 – ChrisF 2012-01-12 14:57:39

+0

老實說?你至少能告訴我們什麼路線? – Will 2012-01-12 14:58:51

+1

更新的問題。這對我來說並不是那麼明顯,因爲我在C#上並不是那麼棒...... – 2012-01-12 15:01:17

回答

1

看來,您要查詢XML。您正在使用的元素名稱是否正確(「名稱」,「類別」等)? Xml區分大小寫,因此請確保您正確拼寫元素名稱。還要確保xml包含所有元素。如果xml中缺少一個,當您嘗試訪問.Value屬性時,它可能會拋出該異常。

+0

不,圖像值在XML中丟失。謝謝您的幫助! – 2012-01-12 15:26:48

0

驗證xmlDoc中包含了所有的費爾德「部分」,「姓名」,「類別」,「說明」,「馬努」,「作者」,「圖像」,「下載」

爲了避免無知道哪些不存在可能FirstOrDefault()將工作像元素(@「下載」)。FirstOrDefault()。值