2017-01-09 1 views
0

Ich versuche, jedes Mal, wenn ich den Hinzufügen-Knopf drücke, ein neues Element zum Listenfeld hinzuzufügen, aber aus irgendeinem Grund fügt es nur das erste hinzu, und wenn ich es erneut drücke, fügt es das zweite nicht hinzu.Warum wird meine Listbox nicht mit neuen Elementen aktualisiert, wenn ich sie hinzufüge?

Wie ich den Code gerade sehe, ist, dass ich eine neue Liste mit dem Namen _items erstellen und dann jedes Mal, wenn ich den Knopf drücke, was immer ich in meinem Textfeld bin, dann aktualisiere ich die ItemSource.

Wie kann ich jedes Mal, wenn ich das AddBtn drücke, ein neues Element hinzufügen?

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


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

Bin ich richtig raten, dass dies WPF ist und Sie es "winforms" getaggt nur aus Gründen der Fehlleitung? –

+0

Das verwirrende Tag wurde gelöscht. – Clemens

Antwort

2

Versuchen Sie, eine ObservableCollection<string> statt List<string> verwenden. Die ObservableCollection unterstützt die Datenbindung und aktualisiert die Zieleigenschaft.

+0

Ich habe '' 'BindingList''' verwendet, was ist der Unterschied? – JonnyKhanas

+0

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

+0

Ja, Sie brauchen die ObservableCollection. Stellen Sie sicher, dass Sie es im Konstruktor initialisieren und löschen Sie es dann nur dann nie, wenn die Bindung dann bricht. – 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

Was ist der Unterschied zwischen '' BindingList''' und '' ObservableCollection'''? – JonnyKhanas

+0

@JonnyKhanas ObservableCollection ersetzt BindingList. IIRC BindingList ist eine Winforms-Sache oder etwas; Verwenden Sie es nicht mit WPF –

+0

In Ordnung, das macht Sinn, danke. – JonnyKhanas

Verwandte Themen