Codefieber.de

IT-Blog

ListView SubItem in WPF

| 2 Kommentare

Da ich mich gerade in WPF einarbeitet, erfahre ich immer wieder Neuerungen die in WPF nicht mehr vorhanden sind bzw. geändert wurden. In der WinForms Technologie z.B. konnte man ohne Probleme an ein ListView-Element ein SubItem anfügen um eine Tabellenstruktur zu erhalten.
Dies ist in WPF nun nicht mehr ohne Weiteres möglich. Hier muss man nun mit dem XAML-Code arbeiten.

Wie man nun SubItems in ein WPF ListView hinzufügt zeige ich hier:

 <ListView Height="183" Name="listViewFiles" Width="376" SelectionChanged="listViewFiles_SelectionChanged">
        <ListView.View>
                    <GridView>                        
                        <GridViewColumn Width="auto" Header="Preview" >
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <Image Width="50" Height="50" VerticalAlignment="Center"
 HorizontalAlignment="Center" Source="{Binding Path=Images}"/>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>                       
                        <GridViewColumn Header="Title" DisplayMemberBinding="{Binding Path=Title}" />
                        <GridViewColumn Header="Length" DisplayMemberBinding="{Binding Path=Length}" />
                        <GridViewColumn Header="Progress" DisplayMemberBinding="{Binding Path=Progress}" />
                        <GridViewColumn Header="Status" DisplayMemberBinding="{Binding Path=Status}" />                        
                </GridView>                   
       </ListView.View>
</ListView>

Dies wäre nun der entsprechende XAML-Code um ein ListView in Tabellenform darstellen zu können:

listview_wpf_header

Man gibt also mit GridViewColumn Header=”Status” die Kopfzeile an. Hier benannt als “Status”.
Die aus WinForms bekannten SubItems kann man nun mit DisplayMemberBinding=”{Binding Path=Status} anhängen.

Wie das funktioniert zeige ich im nachfolgenden C#-Code:

listViewFiles.Items.Add(
                    new {
                        Images = videoList[i].videoThumbnailUrl,
                        Title = videoList[i].videoTitle, 
                        Length = videoList[i].videoLength, 
                        Progress = "", 
                        Status = "", 
                    });

Man übergibt also den “Keys” die anzuzeigenden Informationen. In dem Beispiel eine Bild-Url, ein Titel und eine Zeitangabe. Als Resultat hat man wie in WinForms auch, eine ListView in Tabellenansicht, aber sogar mit zusätzlichen Funktionen, wie dem Einfügen von Bildern.

listview_wpf_subitems

avatar

Autor: Pascal

Codefieber.de wird von Pascal Betke geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

2 Kommentare

  1. avatar

    Danke danke danke danke! Endlich klappts!! Super erklärt!!

    Lieben Gruß
    Tilodon

  2. avatar

    und wie lese ich das wieder aus?

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.