Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » ListView manuell sortieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.04.2005, 11:35 Uhr
mirmi



Hallo

Habe mir den unten angeführten Comparer in mein Prog eingefügt. (Hab ich in einem Forum gefunden...)
Ich kann meine liste mit dem Comparer nur 1x sortieren.

Leider funzt es nicht, wenn ich die Liste aus meinen Arrays neu schreibe.
Sobald die erste Zeile erstellt wurde, also item(0), springt der Comparer an und bekommt natürlich eine Fehlermeldung, weil die Vergleichsliste iy keine Einträge enthält. Klar, sie ist ja auch noch nicht wiederbefüllt.

Ich würde den comparer gerne manuell anstarten.
momentan wird er so aktiviert:
varfrmMachines.lstViewMachines.ListViewItemSorter = New ColumnComparer(1, varfrmMachines.lstViewMachines.Sorting)

Leider ist er ab diesem Zeitpunkt immer aktiv. Gibt es eine Möglichkeit, die Sortierung manuell zu starten?
Ich muss in meinem Prog den ListView mehrmals löschen und neu befüllen. Erst nach dem Befüllen, soll nach der 2. Spalte sortiert werden.

Bitte um einen Tip
grüße
mirmi

Comparer-Code:
Public Class ColumnComparer
Implements IComparer
Private _ColumnIndex As System.Int32
Private _Sorting As System.Windows.Forms.SortOrder

Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements

System.Collections.IComparer.Compare
Dim ix As System.Windows.Forms.ListViewItem
Dim iy As System.Windows.Forms.ListViewItem

ix = DirectCast(x, System.Windows.Forms.ListViewItem)
iy = DirectCast(y, System.Windows.Forms.ListViewItem)

If ix.SubItems.Count > _ColumnIndex And iy.SubItems.Count = 0 Then
Return 1
ElseIf ix.SubItems.Count > _ColumnIndex And iy.SubItems.Count = 0 Then
Return -1
Else
Return System.String.Compare(ix.SubItems(_ColumnIndex).Text, iy.SubItems(_ColumnIndex).Text)
End If
End Function

Public Sub New(ByVal ColumnIndex As System.Int32, ByVal Sorting As System.Windows.Forms.SortOrder)
_ColumnIndex = ColumnIndex
_Sorting = Sorting
End Sub
End Class
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.04.2005, 00:59 Uhr
mirmi



und hier ist die Antwort

aktivieren durch: ListView1.ListViewItemSorter = New ColumnComparer(1, ListView1.Sorting)
deaktivieren durch: ListView1.ListViewItemSorter = New ColumnComparer(Nothing, Nothing)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.05.2005, 17:51 Uhr
mirmi



bitte diesen Thread kicken... ich mach einen neuen zu dem Thema
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: