vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Datagridview: ComparerByList 
Autor: Manfred X
Datum: 21.03.19 09:40

Ein Windows.Forms-Formular zur Demonstration
der Nutzung eines Custom-Comparers im Grid
Public Class frmDGVSortComparerDemo
 
    Dim dgv As New DataGridView With
        {.Parent = Me, .Size = New Size(300, 400)}
 
    Dim WithEvents btnSort As New Button With
        {.Parent = Me, .Top = 420, .Text = "Sort"}
 
    Dim comparerlist As New List(Of String)
 
 
    Private Sub frmDGVSortComparerDemo_Load(sender As Object,
                                    e As EventArgs) Handles MyBase.Load
 
        Me.Width = 320
        Me.Height = 500
 
        'Vorgabeliste für Sortierreihenfolge
        With comparerlist
            .AddRange({"Boot", "Motorrad", "Auto", "Zug", "Laufen"})
        End With
 
        'Testdaten ins Grid eintragen
        Dim rndm As New Random(1234)
        dgv.Columns.Add("Mobilität", "Mobilität")
        For i As Integer = 0 To 100
            dgv.Rows.Add(comparerlist(rndm.Next(comparerlist.Count)))
        Next i
 
    End Sub
 
 
    Private Sub btnSort_Click(sender As Object, 
        e As EventArgs) Handles btnSort.Click
 
        'Comparer erstellen und anwenden
        dgv.Sort(New ComparerByList With
            {.sortorderlist = comparerlist.ToArray, 
             .sortcolumn = "Mobilität"})
    End Sub
 
 
    Private Class ComparerByList
        Implements System.Collections.IComparer
 
        'Ein DatagridviewComparer für Stringspalten
        'nach einem Array dessen Einträge die Reihenfolge vorgeben
 
        Private _sortorderlist As Array
        Private _sortColumn As String
 
 
        Public Property sortorderlist As Array
            Set(value As Array)
                _sortorderlist = value
            End Set
            Get
                Return _sortorderlist
            End Get
        End Property
 
 
        Public Property sortcolumn As String
            Set(value As String)
                _sortColumn = value
            End Set
            Get
                Return _sortColumn
            End Get
        End Property
 
 
        Public Function Compare(x As Object, y As Object) As Integer _
            Implements IComparer.Compare
 
            'Rows casten
            Dim row_x As DataGridViewRow = DirectCast(x, DataGridViewRow)
            Dim row_y As DataGridViewRow = DirectCast(y, DataGridViewRow)
 
            'Werte aus der gewünschten Sortierspalte auslesen
            Dim val_x As String = row_x.Cells(_sortColumn).Value.ToString
            Dim val_y As String = row_y.Cells(_sortColumn).Value.ToString
 
            'Indices der Werte in der Vorgabeliste suchen
            Dim index_x As Integer = Array.IndexOf(_sortorderlist, val_x)
            Dim index_y As Integer = Array.IndexOf(_sortorderlist, val_y)
 
            'Arrayindices vergleichen
            Return index_x.CompareTo(index_y)
        End Function
    End Class
 
End Class


Beitrag wurde zuletzt am 21.03.19 um 09:42:59 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DGV nach bestimmten Werten sortieren724Bloing21.03.19 07:03
Re: DGV nach bestimmten Werten sortieren380Manfred X21.03.19 08:51
Datagridview: ComparerByList393Manfred X21.03.19 09:40
Re: DGV nach bestimmten Werten sortieren367Bloing21.03.19 09:54
Re: DGV nach bestimmten Werten sortieren370Manfred X21.03.19 10:03
Re: DGV nach bestimmten Werten sortieren375effeff21.03.19 10:17
Re: DGV nach bestimmten Werten sortieren354Bloing21.03.19 10:14
Re: DGV nach bestimmten Werten sortieren353Bloing21.03.19 10:31
Re: DGV nach bestimmten Werten sortieren377Manfred X21.03.19 10:40
Re: DGV nach bestimmten Werten sortieren356Bloing21.03.19 11:08
Re: DGV nach bestimmten Werten sortieren363Manfred X21.03.19 11:27

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel