ListBox: Mehrere Werte speichern, jedoch nur einen in ListBox-Zeile anzeigen


Fabian Frank

Erfahrenes Mitglied
Hallo!

ich suche mich jetzt seit Gestern wie blöd durch das Internet und sämtliche Bücher. Problem ist folgendes: In einer Listbox soll nicht nur die ToString() Methode ausgeführt werden, sondern ich möchte ein Objekt in jede Zeile legen, das bspw. noch eine Id hat, die aber in der Zeile nicht angezeigt wird (um beim selektieren einer Zeile diese auslesen zu können).
Da ich in WPF noch nicht sonderlich bewandert bin, hab ich erst versucht dies über Bindings zu lösen und mich dort versucht reinzuarbeiten.

Jedoch komm ich hinten und vorne nicht zurecht.

Gibt es eine Möglichkeit, so in der Art
Code:
<ListBox ShowOnlyObjectsName />
und in C#:
Code:
foreach (var productgroupsItem in productgroups)
            {
                lbProductgroups.Items.Add(productgroupsItem);
            }
(wobei eben "productgroupsItem" ein Objekt ist) die Liste zu befüllen?

Vielen Dank,

Fabian
 

Fabian Frank

Erfahrenes Mitglied
gerade gelöst:

Code:
 <ListBox  x:Name="lbProductgroups" Width="460" Height="400" Margin="5 5 0 5" SelectionChanged="lbProductgroups_SelectionChanged" ItemsSource="{Binding}">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Path=Title}"/>
                                    <TextBlock Text="{Binding Path=Title}"/>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
und in C# einfach eine generische Liste in die ItemsSource:

Code:
lbProductgroups.ItemsSource = pGroups;