Laden...

[erledigt] ListViewItems werden nicht angezeigt

Erstellt von Irathindur vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.062 Views
Irathindur Themenstarter:in
22 Beiträge seit 2009
vor 13 Jahren
[erledigt] ListViewItems werden nicht angezeigt

Hallo,

Mir gehn langsam die Ideen aus.

Ich habe ein Listview, an welches per Databinding eine Liste von Kunden gebunden ist. Um dies zu erreichen übergebe ich an den DataContext des Listviews die Liste.


       this.Kundenliste = new List<Kunde>();
        this.lvKunden.DataContext = this.Kundenliste;


<ListView ItemsSource="{Binding}" Name="lvKunden">
	<ListView.View>
		<GridView>
			<GridViewColumn Header="Anrede" Width="60" DisplayMemberBinding="{Binding Anrede}"/>
			<GridViewColumn Header="Titel" Width="100" DisplayMemberBinding="{Binding Titel}"/>
			<GridViewColumn Header="Name" Width="150" DisplayMemberBinding="{Binding Name}"/>
			<GridViewColumn Header="Vorname" Width="150" DisplayMemberBinding="{Binding Vorname}"/>
			<GridViewColumn Header="Strasse" Width="150" DisplayMemberBinding="{Binding Adresse.Strasse}"/>
			<GridViewColumn Header="PLZ_Ort" Width="150" DisplayMemberBinding="{Binding Adresse.Postcode}"/>                             
		</GridView>
	</ListView.View>  
</ListView>

Wenn ich dieser Liste jetzt einen Kunden hinzufüge, wird dem Listview auch ein neues Listviewitem hinzugefügt (lvKunden.Items.Count ist größer 0). Allerdings wird hier nie ein Item im Listview angezeigt.
Wenn ich dem Listview manuell ein neues Item über "lvKunden.Items.Add(new Kunde("..."))" hinzufüge werden die so hinzugefügten Items hingegen schon angezeigt.

Hat jemand eine Ahnung was ich falsch mache?

Hab schon mehrere Tutorials versucht, auch mein C#/WPF Buch gibt nichtsmehr her.
Warscheinlich seh ich den Wald vor lauter Bäumen nicht.

Viele Grüße
Ira

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo Irathindur,

versuche mal die List<T> mit einer ObservableCollection<T> auszutauschen.
Weil die ObservableCollection sagt dem ListView dass es eine Änderung gab und damit wird dieser auch aktualisiert.
Wenn du eine normale Liste verwendest dann hast du zwar den neuen Eintrag drinnen der ListView weiß aber nicht dass es was Neues gibt und aktualisiert sich nicht

Gruss
Michael

Irathindur Themenstarter:in
22 Beiträge seit 2009
vor 13 Jahren

Es funktioniert. Meine Rettung.

Vielen Dank. Hast mir n haufen Nerven erspart. 🙂

Viele Grüße
Ludwig

U
1.578 Beiträge seit 2009
vor 13 Jahren

Stichwort: INotifyCollectionChanged. Auch INotifyPropertyChanged solltest du beachten. Ein Beispiel findest du hier: Image an eine ListView-Spalte binden