Bonjour,
je fais face depuis quelques jours à une erreur ArgumentException :
"Impossible d'effectuer une liaison à la propriété ou la colonne Commentaire sur le DataSource. Nom du paramètre : dataMember"
Je vous explique le contexte.
J'ai une classe un Module
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
|
Public Class UnModule
Private _EstReference As Boolean
Private _GUIDModule As String
Private _Commentaire As String
Private _Identifier As String
Public Property EstReference() As String
Get
Return _EstReference
End Get
Set(ByVal value As String)
_EstReference = value
End Set
End Property
Public Property GuidModule() As String
Get
Return _GUIDModule.ToString
End Get
Set(ByVal value As String)
_GUIDModule = Guid.NewGuid().ToString
End Set
End Property
Public Property Commentaire() As String
Get
Return _Commentaire.ToString
End Get
Set(ByVal value As String)
_Commentaire = value
End Set
End Property
Public Property Identifier() As String
Get
Return _Identifier
End Get
Set(ByVal value As String)
_Identifier = value
End Set
End Property
End Class |
J'ai déclaré cette classe comme objet base de donnée. Puis dans un Formulaire "Form2" j'ai fait glisser l'ensemble de ces "champs" sur le formulaire ce qui m'a automatiquement créé un BindingSource (UnModuleBindingSource) et un BindingNavigator (UnModuleBindingNavigator)
J'alimente cette BindingSource par un dataset lui même alimenté par un fichier XML.
Le code est le suivant :
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
| Imports System
Imports System.Xml
Imports System.Data
Imports DataSetWithXML.UnModule
Public Class Form2
Private Fichier As String
Private Ds As New DataSet("MesModules")
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
UnModuleBindingSource.DataSource = recup("MesModules")
End Sub
Private Function recup(ByVal oFichier As String) As DataView
Dim _XmlDoc As New XmlDocument
'Chargement du fichier de données
_XmlDoc.Load(oFichier + ".xml")
'lecture du schéma XML par chacun des noeuds
Dim Xnr = New XmlNodeReader(_XmlDoc)
Ds.ReadXml(Xnr)
Dim tables As DataTableCollection = Ds.Tables
Dim view1 As New DataView(tables(0))
Return view1
End Function
Private Sub UnModuleBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Ds.WriteXml("MesModules.xml")
End Sub
End Class |
Si je fais glisser sur le formulaire mes "champs" depuis l'objet source de données "UnModule" en tant que "DataGridView" je n'ai pas l'erreur par contre si je le fais en tant que "Détails" là cette erreur apparait.
Précision : En supprimant la liaison du contrôle CommentaireTextBox au "champ" Commentaire de l'objet "UnModule" le formulaire se charge bien.
Si par code je rajoute la liaison alors cela ne fonctionne plus !
Me.CommentaireTextBox.DataBindings.Add("text", UnModuleBindingSource, "Commentaire")
Je ne sais pas du tout comment m'en sortir, j'ai déjà pas mal fouillé sur le net et sur les forums sans succès. Je précise que bien sûr j'ai absolument besoin d'avoir le mode détails.
Merci d'avance.
Partager