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.

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
N.B. : tp pour TabPage

Et voici la 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
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
Lors de l'ouverture du formulaire et de l'affichage du tabpage, pas de souci, le datagridview se remplit bien comme il le doit.

Par contre, quand j'ajoute une nouvelle partie à la liste, le datagridview ne se mets pas à jour...

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()
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.

Quelqu'un aurait un indice svp. ?

Merci d'avance.

Griftou.