Propriété DataMember [ObjectName] ne peut pas être trouvé sur la source de données
J'ai un objet de gestion, qui est un composé d'objets enfants.
Je suis à l'aide de la liaison de données dans Visual Studio 2008 pour se lier à des contrôles sur un formulaire Windows.
Mais j'obtiens l'erreur ci-dessus dans la méthode InitializeComponent de la forme.
Permet de dire que j'ai un objet appelé ParentObject qui contient une liste générique, ChildListObject. Le ParentObject a aussi Enfant de l'objet, qui a elle-même un objet Enfant. (c'est à dire ParentObject.ChildObject.ChildObject)
J'ai mis la principale source de liaison:
BindingSource.Datasource = ParentObject
- Je ajouter une grille et de l'ensemble de liaison source:
GridBindingSource.Datasource = ParentObject
et définir la DataMember:
BindingSourceB.DataMember = "ChildListObject"
Maintenant, la grille de la source de données est définie à GridBindingSource:
Me.MyDataGridView.DataSource = Me.GridBindingSource
Il y a aussi d'autres contrôles qui sont liés aux propriétés de la ParentObject et la ParentObject.ChildObject
J'ai testé ce isolés projet et il fonctionne très bien, donc j'ai de la difficulté à trouver le bug réel est? Code utilisé pour travailler, est-ce que tous les cas d'arrêt brusque de travail.
L'erreur que je reçois est (si j'utilise les noms des objets dans l'exemple ci-dessus):
"Propriété DataMember ChildObject ne peut pas
être trouvé sur la source de données"
Il échoue sur:
Me.MyDataGridView.DataSource = Me.GridBindingSource
Étrangement, si je supprimer <Système.Diagnostics.DebuggerStepThrough()> et puis quand il échoue juste continuer c'est bien??? Mais il ne parvient toujours pas à l'exécution.
Quelqu'un a une idée qui pourrait me diriger dans la bonne direction? Le plus proche que j'ai trouvé via google peut avoir quelque chose à voir avec l'ordre de génération de code de concepteur obtenir foiré. Du Code du travail, est-ce que tous les cas d'arrêt brusque de travail.
Cette question semble aller et venir. Si je viens de le continuer après l'erreur est déclenchée, le programme continue joyeusement avec pas de problèmes. Probablement un bug dans VS. Mais au moment de l'exécution de l'erreur existe toujours.
Ce qui est à l'origine de ce problème? Comment puis-je empêcher qu'il se produise?
OriginalL'auteur ptutt | 2009-02-26
Vous devez vous connecter pour publier un commentaire.
J'ai essayé plusieurs expériences sur cette. Le problème se produit uniquement dans cette condition
si vous avez la classe baseform et BindingSource sur elle,
si vous héritez d'un nouveau InheritedForm de ce la classe baseform,
ou
si vous avez d'autres source de liaison sur InheritedForm liées à la BindingSource (qui a hérité par la classe baseform)
vous avez le designer d'erreur. Je n'ai pas un concepteur de solution, mais si vous avez simplement l'ignorer, et continuer tout va être normal lorsque vous générez le projet de nouveau
ou vous devrez définir le datamember par le code.
OriginalL'auteur Cenk Taylan Düz
La seule solution que j'ai trouvé à faire ce qui suit:
OriginalL'auteur ptutt
Il suffit de déplacer votre de générer du code pour
Form_Load
événement comme celui-ci:OriginalL'auteur Linh Lương
Datamember devrait être une chaîne de caractères qui définit ce qu'est la propriété de la Liste que vous souhaitez afficher. Pas nécessaire ici.
Ce serait logique:
Si votre liaison à un réseau, vous n'avez pas défini Datamember. Venez de définir la source de données, puis utilisez le concepteur de configurer la grille.
La GetType est là pour aider le concepteur. Dans les propriétés du concepteur, vous devez régler le BindingSourceB à ChildListObject type, et puis faire ce que j'ai fait ci-dessus.
OK, j'ai édité ma réponse. J'espère que c'est utile.
OriginalL'auteur gcores
J'ai eu le même problème
supprimé le
WithEvents
et tout fonctionnait à nouveauOriginalL'auteur Nick N.
Pour une raison quelconque erreur de ne pas s'inscrire dans la fenêtre d'erreur jusqu'à ce que j'manuellement ouvert le "Concepteur" de mon formulaire. Une fois que j'ai ouvert le concepteur de la tâche, j'ai pu alors voir les erreurs sur les liaisons et tel de supprimer manuellement.
Ce qui a causé cela est, je l'ai enlevé les sources de données à partir de mon projet, mais il n'a pas supprimer tout le code derrière eux l'auto-magiquement, je suppose.
OriginalL'auteur Pacific NorthWest