1 pièce(s) jointe(s)
databindings : textbox et propriété de classe.
Bonjour,
J'écris ce message car je n'arrive pas à binder une proriété d'une classe à un contrôle de type Textbox.
J'ai suivi plusieurs tutoriels et je dois forcément être passé à côté de quelque chose car rien n'y fait...
Voici les classes impliquées :
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
| 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
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.Status = e_status.Created
End Sub
End Class |
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
| Public Class Textes
Inherits List(Of Texte)
Public Overloads Function Find(ByVal language As Integer) As Texte
For Each elem As Texte In Me
If elem.Language = language Then
Return elem
End If
Next
Return Nothing
End Function
End Class
Public Class Texte
Public Property Texte As String
Public Property Language As Integer
Public Property Version As Integer
Public Sub New(ByVal texte As String, ByVal language As Integer, ByVal version As Integer)
Me.Texte = texte
Me.Language = language
Me.Version = version
End Sub
End Class |
Dans l'application, j'instancie donc un objet de type Parties dans lequel je place des objets de type Partie lesquels contiennent un objet de type Textes qui lui-même est contient 2 objets de type Texte.
Sur mon formulaire, j'ai un datagridview qui a pour source de données l'objet de type Parties. Ca, ça marche ^^.
A côté de ce controle, il y a 2 textbox. Une pour le texte en français et une pour le texte en néerlandais. C'est la donnée qui est contenu dans chacun des objets Texte.
Ce que je voudrais, c'est que lorsque l'on choisit une ligne dans le datagridview, le texte associé s'affiche dans la TextBox appropriée.
Vous trouverez un screenshot en pièce jointe. Il sera p-e plus explicite.
L'écran se divise donc en 3 (liste, détail et création). Quand je choisis un item dans liste, je veux afficher le détail.
J'y arrive "manuellement" mais je dois alors forcer l'utilisateur à cliquer sur un bouton pour que les modifications apportées soient reportées dans l'objet en mémoire. Si j'ai bien compris, avec le databinding, cela se fait automatiquement.
C'est ce à quoi je voudrais arriver pour pouvoir retirer les boutons "Annuler les modifications" et "Valider les modifications".
Merci d'avance.
Griftou.