Bonjour,

j'ai une classe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.