Bonjour,
j'ai une classe :
que j'utilise dans une bindinglist
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 ClassMesDonnees 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private MesDonnees As New BindingList(Of ClassDGVPIPC)
Je viens de me rendre compte que la manière dont j'initialise MesDonnees
me pose problème car MesPIPC est ordonné d'une manière différente de celle dont j'ai besoin dans le datagridview.
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
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.
Partager