Das ListView-Steuerelement

Wenn Sie ein Abonnement des Magazins 'DATENBANKENTWICKLER' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Das ListView-Steuerelement

Es gibt unter WPF sechs Steuerelemente, die eine Auswahl untergeordnete Elemente ermöglichen – ComboBox, ListBox, ListView, DataGrid, TabControl und Ribbon. In diesem Artikel schauen wir uns das ListView-Steuerelement an, das gegebenüber dem ListBox-Element einige Möglichkeiten zur einfacheren Darstellung der enthaltenen Daten liefert, und zwar über die View-Eigenschaft. Im Vergleich zur ListBox bietet die ListView außerdem standardmäßig die erweiterte Auswahl an – Sie können also direkt mehrere Einträge statt nur einem einzigen selektieren. Dieser Artikel zeigt, wie Sie das ListView-Steuerelement zur Anzeige von Daten aus einer Collection von Entitäten anzeigen können.

Das ListView-Steuerelement bietet eine ziemlich einfache Möglichkeit, die Daten etwa aus einer ObservableCollection zur Auswahl anzubieten. Für die Anzeige einiger Daten am Beispiel von Adressdaten haben wir die folgende Klasse für das Fenster MainWindow.cs eines frischen WPF-Projekts angelegt. Dieses hält eine ObservableCollection mit Elementen des Typs Adresse namens Adressen als öffentliche Eigenschaft bereit und füllt diese Collection in der Konstruktor-Methode mit einigen Elementen:

Class MainWindow
     Public Property Adressen As ObservableCollection(Of Adresse)
     Public Sub New()
         InitializeComponent()
         Adressen = New ObservableCollection(Of Adresse)
         Adressen.Add(New Adresse With {.Anrede = "Herr", .EMail = "andre@minhorst.com", .Firma = "André Minhorst Verlag", _
              .ID = 1, .Land = "Deutschland", .Nachname = "Minhorst", .Ort = "Duisburg", .PLZ = "47137", _
              .Strasse = "Borkhofer Str. 17", .Telefon = "0123/123456", .Vorname = "André"})
         '...weitere Adressen
         DataContext = Me
     End Sub
End Class

Die Klasse Adresse.vb sieht etwa wie folgt aus:

Public Class Adresse
     Public Property ID As Integer
     Public Property Firma As String
     Public Property Anrede As String
     Public Property Vorname As String
     Public Property Nachname As String
     Public Property Strasse As String
     Public Property PLZ As String
     Public Property Ort As String
     Public Property Land As String
     Public Property EMail As String
     Public Property Telefon As String
End Class

Damit können wir schon das Window-Element mit dem ListView-Element bestücken. Damit dieses die Daten der Auflistung in der ObservableCollection anzeigt, benötigen wir ein paar Unterelemente. Als Erstes stellen wir jedoch für das ListView-Element die Datenherkunft ein, und zwar mit dem Attribut ItemsSource.

Dieses legen wir auf den Wert {Binding Adressen} ein, was eine Bindung zu der mit der öffentlichen Eigenschaft Adressen der Code behind-Klasse erzeugt. Dann fügen wir diesem über ein Property Element die Eigenschaft View hinzu (). Dieses erhält schließlich das Element GridView und die untergeordneten Spaltenbeschreibungen GridViewColumn.

In diesen Elementen legen wir mit der Eigenschaft Header die Spaltenüberschriften und mit der Eigenschaft DisplayMemberBinding und dem Wert {Binding } den Inhalt des ListView-Elements fest:

<Window x:Class="MainWindow" ...        Title="MainWindow" Height="350" Width="525">
     <Grid>
         <ListView ItemsSource="{Binding Adressen}" Margin="5">
             <ListView.View>
                 <GridView>
                     <GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" />
                     <GridViewColumn Header="Firma" DisplayMemberBinding="{Binding Firma}" />
                     <GridViewColumn Header="Anrede" DisplayMemberBinding="{Binding Anrede}" />
                     <GridViewColumn Header="Vorname" DisplayMemberBinding="{Binding Vorname}" />
                     <GridViewColumn Header="Nachname" DisplayMemberBinding="{Binding Nachname}" />
                     <GridViewColumn Header="Straße" DisplayMemberBinding="{Binding Strasse}" />
                     <GridViewColumn Header="PLZ" DisplayMemberBinding="{Binding PLZ}" />
                     <GridViewColumn Header="Ort" DisplayMemberBinding="{Binding Ort}" />
                     <GridViewColumn Header="Land" DisplayMemberBinding="{Binding Land}" />
                 </GridView>

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Neues aus unseren Magazinen
Listenfeld: Reihenfolge mehrerer Einträge...

Wir haben bereits in mehreren Beiträgen beschrieben, wie Sie die individuelle Reihenfolge von Elementen einer Tabelle über den Inhalt eines Feldes etwa namens »ReihenfolgeID« einstellen können –... [mehr]

Diagramme mit gefilterten Daten

In Ausgabe 2/2019 haben wir in zwei Artikeln die modernen Diagramme von Access vorgestellt. Im vorliegenen Beitrag zeigen wir Ihnen, wie Sie diese abhängig von den in einem Formular angezeigten... [mehr]

Benutzerverwaltung mit verschlüsselten...

Wenn Sie in einer Access-Anwendung Benutzer verwalten wollen, die sich per Benutzername und Kennwort an die Anwendung anmelden, sollten Sie sehr sensibel mit den in der Anwendung gespeicherten... [mehr]

HTML-Tabellen mit fester Kopfzeile

In den vorherigen Ausgaben von Access im Unternehmen und in der aktuellen Ausgabe arbeiten wir in einigen Beiträgen mit dem Webbrowser-Steuerelement und stellen Daten, die wir mit den Bordmitteln... [mehr]

Flexible HTML-Tabellen mit fester Kopfzeile

Im Beitrag »HTML-Tabellen mit fester Kopfzeile« haben wir gezeigt, wie Sie Daten aus einer bestimmten Abfrage in einem Webbrowser-Steuerelement so anzeigen, dass die Spaltenköpfe oben fixiert... [mehr]

Berechtigungen per HTML verwalten

Im Beitrag »Benutzerverwaltung mit verschlüsselten Kennwörtern« stellen wir eine Lösung vor, in der wir die Berechtigungen von Benutzergruppen an Datenbankobjekten definieren. Dort benötigen wir... [mehr]

Benutzer und Berechtigungen ermitteln

In den Beiträgen »Benutzerverwaltung mit verschlüsselten Kennwörtern« und »Berechtigungen per HTML verwalten« haben wir die Voraussetzungen für eine Benutzerverwaltung geschaffen. Im vorliegenden... [mehr]

Zugriffsrechte mit Datenmakros

Es gibt verschiedene Möglichkeiten, auf Basis des aktuell angemeldeten Benutzers sicherzustellen, dass dieser nur die für ihn vorgesehenen Aktionen mit Daten durchführen darf – beispielsweise durch... [mehr]

Kennwörter generieren

Für den einen oder anderen Zweck möchten Sie vielleicht Kennwörter generieren oder in einer Benutzeroberfläche die Möglichkeit zum Generieren von Kennwörtern anbieten. Wenn Sie etwa Benutzer zu... [mehr]

Neuer Datensatz von Frontend zu Backend

Für manche Themen gibt es keine kurze, prägnante Überschrift. In diesem Fall wollen wir zeigen, wie Sie einen neuen Datensatz anlegen, der in einer temporären Tabelle im Frontend gespeichert wird,... [mehr]