Mit dem Tipp ListView-Inhalt in Datei speichern und wieder auslesen habe wir Ihnen gezeigt, wie Sie den ListView Inhalt in eine flache Textdatei speichern und wieder laden können. Mit den heutigen Tipp möchten wir Ihnen eine Erweiterung vorstellen, die den Inhalt des ListViews und zusätzlich die ColumnHeader Informationen in eine XML Datei speichert und auch wieder auslesen kann. Die nachfolgende Klasse erbt von ListView und wird dabei um die Load und Save Methode erweitert. Die neuen Methoden nutzen dabei die LINQ to XML Technik. Doch nicht nur die Daten werden als XML gespeichert, sondern zusätzlich noch die ColumnHeader Informationen, so dass ein ListView komplett wiederhergestellt werden kann. Nachfolgend die Klasse ListViewEx: Imports System.Windows.Forms.ListViewItem Public Class ListViewEx Inherits Windows.Forms.ListView Public Sub Save(ByVal FileName As String) Try Dim xDoc As New XDocument() With xDoc .Declaration = New XDeclaration("1.0", "", "") .Add(New XElement("ListView")) ' ColumnHeader in das XML-Dokument einfügen .Root.Add(From col As ColumnHeader In Me.Columns _ Select <ColumnHeader> <Text><%= col.Text %></Text> <Name><%= col.Name %></Name> <DisplayIndex><%= col.DisplayIndex %></DisplayIndex> <Width><%= col.Width %></Width> </ColumnHeader>) ' Items in das XML-Dokument einfügen .Root.Add(From Item As ListViewItem In Me.Items _ Select <Item> <%= From SubItem As ListViewSubItem In Item.SubItems _ Select <Text><%= SubItem.Text %></Text> %> </Item>) ' XML-Datei speichern .Save(FileName) End With Catch ex As Exception Throw ex End Try End Sub Public Sub Load(ByVal FileName As String) Try Me.Items.Clear() Me.Columns.Clear() Me.BeginUpdate() ' XML-Datei einlesen Dim xListView = XElement.Load(FileName) ' ColumnHeader aus XML erstellen Me.Columns.AddRange((From col In xListView.Descendants("ColumnHeader") _ Select New ColumnHeader With { _ .Text = col.Element("Text"), _ .Name = col.Element("Name"), _ .DisplayIndex = CInt(col.Element("DisplayIndex")), _ .Width = CInt(col.Element("Width"))}).ToArray) ' Items aus XML einlesen und dem ListView hinzufügen For Each Item In xListView.Descendants("Item") Me.Items.Add(New ListViewItem(( _ From SubItem In Item.Descendants("Text") _ Select SubItem.Value).ToArray)) Next Catch ex As Exception Throw ex Finally Me.EndUpdate() End Try End Sub End Class Aufrufbeispiel zum Speichern des ListViews Me.ListViewEx1.Save("D:\ListView.xml") Aufrufbeispiel zum Laden des ListViews Me.ListViewEx1.Load("D:\ListView.xml") Dieser Tipp wurde bereits 17.063 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Tipp des Monats Dezemeber 2024 Roland Wutzke MultiSort im ListView-Control Dieses Beispiel zeigt, wie sich verschiedene Sortierfunktionen für ein ListView Control realisieren lassen. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |