Trier une bindinglist par un de ses composants
Bonjour,
j'ai une classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Friend Class ClassDGVPIPC
' Cette classe definit l'ensemble des données associées à la définition du DGV PI/PC/Commentaires Calcul
Private _SeqLign As String
Private _PIPC As String
Private _CodeEquaLign As Integer
Private _CodePIPC As String
' Constructeur
Friend Sub New(ByVal SeqLign As String, ByVal PIPC As String, ByVal CodeEquaLign As Integer, ByVal CodePIPC As String)
_SeqLign = SeqLign
_PIPC = PIPC
_CodeEquaLign = CodeEquaLign
_CodePIPC = CodePIPC
End Sub
' Accesseurs
Property SeqLign() As String
Get
Return _SeqLign
End Get
Set(ByVal Valeur As String)
_SeqLign = Valeur
End Set
End Property
Property PIPC() As String
Get
Return _PIPC
End Get
Set(ByVal Valeur As String)
_PIPC = Valeur
End Set
End Property
Property CodeEquaLign() As Integer
Get
Return _CodeEquaLign
End Get
Set(ByVal Valeur As Integer)
_CodeEquaLign = Valeur
End Set
End Property
Property CodePIPC() As String
Get
Return _CodePIPC
End Get
Set(ByVal Valeur As String)
_CodePIPC = Valeur
End Set
End Property
End Class |
que j'utilise dans une bindinglist
Code:
Private MesDonnees As New BindingList(Of ClassDGVPIPC)
MesDonnees est ensuite utilisé dans un Datagridview, ce qui permet d'avoir une mise à jour automatique du DGV dès que je fais évoluer MesDonnees -> ça, ça marche bien.
Je viens de me rendre compte que la manière dont j'initialise MesDonnees
Code:
1 2 3 4 5 6 7 8 9 10 11
| ' Mise à jour des données du DGV (Comme MesDonnees est BindingList, sa mise à jour met à jour le DGV)
MesDonnees.Clear()
NbreLignesReduites = 0
For Each Data As KeyValuePair(Of Integer, ClassPIPC) In MesPIPCSeq
If Me.ToolStripButtonPI.Tag And Data.Value.TextePI <> "" Then
MesDonnees.Add(New ClassDGVPIPC("S" & MesSeq(Data.Key).Numero, Data.Value.TextePI, Data.Key, "PI"))
End If
If Me.ToolStripButtonPC.Tag And Data.Value.TextePC <> "" Then
MesDonnees.Add(New ClassDGVPIPC("S" & MesSeq(Data.Key).Numero, Data.Value.TextePC, Data.Key, "PC"))
End If
Next |
me pose problème car MesPIPC est ordonné d'une manière différente de celle dont j'ai besoin dans le datagridview.
En fait il faudrait que MesDonnees soit ordonné par CodeEquaLign croissant.
Est-ce que je peux faire un espèce de OrderBy (j'ai pas forcement compris comment l'implémenter dans mon cas) de MesDonnees sur lui-même pour le réordonner après l'avoir créé?
Ou alors faut-il que je modifie ma boucle For Each de manière à ce qu'au moment de la création, au lieu de faire un simple MesDonnees.Add je fasse un ajout à un rang donné?
Ou est-ce que dans la classe ClassDGVPIPC il faut que j'ajoute un tri, il me semble que j'avais fait ça un jour avec une histoire de dictionary?
Si quelqu'un peut juste me donner la meilleure des 3 pistes à explorer (ou une autre), merci d'avance.