Datagridview : mettre à jour la source de données
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:
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:
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:
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.