2016-04-18 3 views
0

Ich habe eine kurze Frage an Sie für heute Abend. Ich hoffe, es ist einfach. Ich habe eine listview und gebunden textboxes. Ich meine, wenn ich auf die listview klicke, sehe ich die Details in der text boxes (auf der rechten Seite des Fensters).Wie man ein Textfeld an Listview SelectedItem und an eine Eigenschaft bindet

Listview:

ListView ItemsSource="{Binding ItemList}" SelectedItem="{Binding SelectedItem}" 

Textbox:

TextBox Text="{Binding SelectedItem.FirstName, UpdateSourceTrigger=PropertyChanged}" 

Das funktioniert ziemlich gut. Aber was ich erreichen möchte, ist den FirstName im Textfeld zu aktualisieren und in die Datenbank zu schreiben. Und das ist der Punkt, an dem ich feststecke. Wie bekomme ich den geänderten Vornamen? SelectedItem Objekt hat nur den nicht geänderten Wert.

Könnten Sie mir bitte einen Hinweis geben?

+0

Haben Sie einfach eine Auswahl SelectedItem.FirstName – Paparazzi

Antwort

0

Standardmäßig hat die Eigenschaft TextBox.Text eine TwoWay Bindung, was bedeutet, dass sowohl Quelle als auch Ziel diese aktualisieren können. Damit die Quelle aktualisiert wird, müssen Sie INotifyPropertyChanged in der Klasse implementieren und das Ereignis PropertyChanged mit den Ereignisargumenten, die den geänderten Eigenschaftsnamen enthalten, implementieren, wenn es sich nicht um eine Abhängigkeitseigenschaft, sondern um eine gute alte .NET-Eigenschaft handelt. Dadurch wird die Benutzeroberfläche korrekt aktualisiert, wenn sich die Quelle ändert.

Auf der anderen Seite, wenn Sie die Quelle von der Benutzeroberfläche aktualisieren, aktualisiert es die Eigenschaft ohne Probleme, wenn es einen Setter hat. Ich sehe also kein Problem mit Ihrem Ansatz.

Um es in eine Datenbank zu schreiben, könnten Sie eine Schaltfläche haben, die beim Anklicken das ausgewählte Element übernimmt und die Datenbank aktualisiert.

Verwandte Themen