2013-05-04 114 views
0

當我嘗試向列表框添加任何內容時,應用程序將關閉。將項添加到列表框時應用程序崩潰

這是我到目前爲止。導致它關閉該生產線是:listBox1.Items.Add(term1)

using System; 
using System.IO; 
using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Shapes; 
using Microsoft.Phone.Controls; 

namespace PhoneApp1 { 
    public partial class MainPage : PhoneApplicationPage { 
    // Constructor 
    public class Item { 
     public string itemLine1 { get; set; } 
     public string itemLine2 { get; set; } 
    } 

    public MainPage() { 
     InitializeComponent(); 
     List<Item> list = new List<Item>(); 
     Item item = new Item(); 
     item.itemLine1 = "Item11"; 
     item.itemLine2 = "Item12"; 
     list.Add(item); 
     item = new Item(); 
     item.itemLine1 = "Item21"; 
     item.itemLine2 = "Item22"; 
     list.Add(item); 
     item = new Item(); 
     item.itemLine1 = "Item31"; 
     item.itemLine2 = "Item32"; 
     list.Add(item); 

     Dispatcher.BeginInvoke(new Action(() => 
     listBox1.ItemsSource = list 
     )); 

     WebClient wc = new WebClient(); 
     wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler (wc_DownloadStringCompleted); 
     wc.DownloadStringAsync(new Uri("http://www.usi.edu/webservices/iphone/USIINFOterms.xml")); 

    } 

    void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { 
     ApplicationTitle.Text = e.Result;    
     string terms = ApplicationTitle.Text; 
     ApplicationTitle.Text = "Course Catalog"; 
     string term1 = terms.Substring(terms.IndexOf("value"+7),terms.IndexOf("/value")); 
     listBox1.Items.Add(term1); 
    } 

    private void ListBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) { 
     if (sender != null) PageTitle.Text = sender.ToString(); 
     if (e != null) PageTitle.Text = e.AddedItems.Count.ToString(); 

     IEnumerator ie = e.AddedItems.GetEnumerator(); 
     ie.MoveNext(); 

     if (e != null) ApplicationTitle.Text = ie.Current.ToString(); 
    } 
    } 
} 
+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2013-05-04 20:31:19

+0

發生這種情況時,Visual Studio的輸出窗口中有什麼? – 2014-01-22 08:27:48

回答

0

你已經設置的ItemsSource接受一種類型的物品,但你要添加一個字符串到它。在添加它之前將字符串轉換爲Item,以便它與ItemSource的預期類型匹配。

0

您正試圖向項目列表添加字符串。我的猜測是你得到一個InvalidTypeException或類似的。請嘗試創建一個新項目,並將term1分配給item.itemLine1,然後listBox1.Items.Add(item),而不是listBox1.Items.Add(term1)

相關問題