[WPF] ListView mit GridViewColumns: Zeile hinzufügen
-
Hallo,
ich beschäftige mich seit ein paar Tagen mit C# und WPF und komme gerade ohne Hilfe absolut nicht mehr weiter. Durch googlen und im Forum suchen habe ich auch nichts gefunden für dieses simple Problem.
Ich habe mir ein ListView erstellt mit drei Spalten:
<ListView Margin="65,40,62,38" Name="MyList"> <ListView.View> <GridView> <GridViewColumn Header="Name"/> <GridViewColumn Header="Adresse"/> <GridViewColumn Header="Telefon"/> </GridView> </ListView.View> </ListView>
Nun möchte ich einfach nur einen Eintrag in diese ListView einfügen. Das schaffe ich auch schon mit:
MyList.Items.Add("Das ist ein Test");
Allerdings wird der Text in allen drei Spalten angezeigt.
Wie kann ich ihn denn für jede Spalte extra festlegen?Danke im Voraus für eure Hilfe!
-
Hallo,
jede Zeile (ListViewItem) in einem mehrspaltigen Listview besteht noch aus SubItems (Unterelemente). Diese müssen bei der Erstellung eines Eintrags angegeben werden, siehe z.B.:
http://msdn.microsoft.com/de-de/library/system.windows.forms.listviewitem.subitems.aspx
Weitere Möglichkeiten siehe:
http://msdn.microsoft.com/de-de/library/system.windows.forms.listviewitem.listviewitem.aspx
MfG,
Probe-Nutzer
-
Danke für deine Antwort, aber das scheint Windows Forms zu sein und nicht WPF. Da funktioniert das irgendwie anders.
Hat denn niemand ne Idee, wie das mit WPF funktioniert?
-
Sieh mal hier rein.
-
DaOne schrieb:
Danke für deine Antwort, aber das scheint Windows Forms zu sein und nicht WPF. Da funktioniert das irgendwie anders.
Stimmt, Thema verfehlt, hätte ich genauer lesen sollen, mit WPF läuft das natürlich nicht so, da wird "data binding" eingesetzt.
MfG,
Probe-Nutzer
-
Ok, jetzt funktionierts. Danke für die Hilfe.
Ich dachte, man kann das auch ohne Databinding machen.
Ich habs jetzt wie auf der Seite von deinem Link gelöst.Grüße
-
Hier noch mein Code dazu:
<ListView Margin="65,40,62,38" Name="AddressList"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="Name"/> <GridViewColumn DisplayMemberBinding="{Binding Path=Address}" Header="Adresse"/> <GridViewColumn DisplayMemberBinding="{Binding Path=Phone}" Header="Telefon"/> </GridView> </ListView.View> </ListView>
class cAddressEntry { public string Name { get; set; } public string Address { get; set; } public string Phone { get; set; } } public partial class PageAddresses : Page { private List<cAddressEntry> m_AddressContainer = new List<cAddressEntry>(); public PageAddresses() { InitializeComponent(); AddressList.ItemsSource = cAddressEntry; } public void AddEntry(string name, string address, string phone) { m_AddressContainer.Add(new cAddressEntry {Name = name, Address = address, Phone = phone}); } }