2017-01-09 66 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

相关问题