2017-01-09 63 views
0

我試圖添加一個新的項目到列表框中,每次我按下添加按鈕,但由於某種原因它只添加第一個,如果我再次按下它,它不會添加第二個。爲什麼我的列表框在我添加新項目時得到更新?

我現在看到的代碼是我創建了一個名爲_items的新列表,然後我每次按下按鈕時添加我的文本框中的內容,然後我更新ItemSource。

如何每次按下AddBtn時添加一個新項目?

List<string> _items = new List<string>(); 


private void addBtn_Click(object sender, RoutedEventArgs e) 
{ 
    _items.Add(recipentTextbox.Text); 
    recipientLb.ItemsSource = _items; 
} 
+4

我正確地猜測這是WPF,你只是爲了誤導而將它標記爲'winforms'? –

+0

刪除了混淆標籤。 – Clemens

回答

2

嘗試使用ObservableCollection<string>而不是List<string>ObservableCollection支持數據綁定,並將更新目標屬性。

+0

我用'''BindingList''有什麼區別? – JonnyKhanas

+0

[http://stackoverflow.com/questions/4284663/difference-between-observablecollection-and-bindinglist] – Peter

+0

是的,你需要ObservableCollection。確保您在構造函數中初始化它,然後只清除它,永不替換它,然後綁定將會中斷。 – Kelly

0
ObservableCollection<string> _items = new ObservableCollection<string>(); 

// Or whatever your constructor is 
public MainWindow() 
{ 
    recipientLb.ItemsSource = _items; 
} 

private void addBtn_Click(object sender, RoutedEventArgs e) 
{ 
    _items.Add(recipentTextbox.Text); 
} 
+0

'BindingList'''和'''ObservableCollection'''有什麼區別? – JonnyKhanas

+0

@JonnyKhanas ObservableCollection取代BindingList。 IIRC BindingList是一個winforms的東西或東西;不要將它與WPF一起使用 –

+0

好吧,這很有道理,謝謝。 – JonnyKhanas

相關問題