Bonjour,
J'ai un souci dont je ne comprends pas la cause.
J'ai sur mon formulaire un contrôle datagridview dont je me sers pour afficher une liste d'objet.
N.B. : tp pour TabPage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim partie As Partie Dim parties As Parties Private Sub tpPartie_Enter(sender As System.Object, e As System.EventArgs) Handles tpPartie.Enter parties = DAL_Partie.GetAllParties dgvPartie.DataSource = parties End Sub
Et voici la classe :
Lors de l'ouverture du formulaire et de l'affichage du tabpage, pas de souci, le datagridview se remplit bien comme il le doit.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 Public Class Parties Inherits List(Of Partie) Public Overloads Function Find(ByVal id As Integer) As Partie For Each elem As Partie In Me If elem.Id = id Then Return elem End If Next Return Nothing End Function End Class Public Class Partie Implements IComparable(Of Partie) Protected Function CompareTo(ByVal other As Partie) As Integer _ Implements IComparable(Of Partie).CompareTo If TypeOf other Is Partie Then Dim temp As Partie = CType(other, Partie) Return Me.ordre.CompareTo(temp.Ordre) End If Throw New ArgumentException("L'objet n'est pas un Document") End Function Private _id As Integer Public Property Id As Integer Set(value As Integer) _id = value Me.Status = e_status.Updated End Set Get Return _id End Get End Property Private _ordre As Integer Public Property Ordre As Integer Set(value As Integer) _ordre = value Me.Status = e_status.Updated End Set Get Return _ordre End Get End Property Private _textes As Textes Public Property Textes As Textes Set(value As Textes) _textes = value Me.Status = e_status.Updated End Set Get Return _textes End Get End Property Public Property Status As e_status Public Enum e_status As Integer UpToDate = 1 Created = 2 Updated = 3 End Enum Public Sub New(ByVal id As Integer, ByVal ordre As Integer, ByVal textes As Textes) 'ByVal nom As String Me.Id = id Me.Ordre = ordre Me.Textes = textes Me.Status = e_status.UpToDate End Sub Public Sub New(ByVal ordre As Integer, ByVal textes As Textes) 'ByVal nom As String Me.Ordre = ordre Me.Textes = textes Me.Id = 0 Me.Status = e_status.Created End Sub End Class
Par contre, quand j'ajoute une nouvelle partie à la liste, le datagridview ne se mets pas à jour...
J'ai bien sûr vérifier en mode débug et l'objet est bien ajouté à la liste. Le problème se situe uniquement au niveau de l'affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim newPartie As New Partie(les paramètres qui vont bien) parties.Add(newPartie) parties.Sort() dgvPartie.DataSource = parties dgvPartie.Refresh()
Quelqu'un aurait un indice svp. ?
Merci d'avance.
Griftou.
Partager