Ich habe ein Business-Objekt, das eine Zusammensetzung von untergeordneten Objekten ist.
Ich verwende Datenbindung in Visual Studio 2008, um an Steuerelemente in einem Windows-Formular zu binden.DataMember Eigenschaft [ObjectName] kann nicht auf der DataSource gefunden werden
Aber ich bekomme den obigen Fehler in der InitializeComponent-Methode des Formulars.
Nehmen wir an, ich habe ein Objekt namens ParentObject, das eine generische Liste enthält, ChildListObject. Das ParentObject hat auch Child-Objekt, das selbst ein Child-Objekt hat. (Dh ParentObject.ChildObject.ChildObject)
stelle ich die Hauptbindungsquelle:
BindingSource.Datasource = ParentObject
I ein Gitter hinzufügen und es Bindungsquelle:
GridBindingSource.Datasource = ParentObject
und die Datamember auf:
Jetzt ist die Datenquelle des Rasters auf GridBindingSource gesetzt:
Me.MyDataGridView.DataSource = Me.GridBindingSource
Es gibt auch andere Steuerelemente, die Eigenschaften des Parent gebunden sind und die ParentObject.ChildObject
ich dies in einem isolierten Projekt getestet und es funktioniert gut, so dass ich habe Probleme, herauszufinden, was die echter Bug ist? Code, der früher funktioniert hat, hört plötzlich auf zu arbeiten.
Der Fehler I ist (wenn ich die Namen der Objekte in dem obigen Beispiel):
„Datamember Eigenschaft Childobject kann nicht auf der Datasource finden“
Es schlägt fehl auf:
Me.MyDataGridView.DataSource = Me.GridBindingSource
Seltsam, wenn ich entfernen < System.Diagnostics.DebuggerStepThrough() > und dann, wenn es scheitert einfach weiter so ist es in Ordnung ??? Aber es schlägt immer noch in der Laufzeit fehl.
Hat jemand Ideen, die mir in die richtige Richtung zeigen könnten? Das nächste, was ich beim googlen gefunden habe, ist, dass es etwas damit zu tun hat, dass die Reihenfolge des generierten Designercodes durcheinander gerät. Code, der funktionierte, wird plötzlich aufhören zu arbeiten.
Dieses Problem scheint zu kommen und zu gehen. Wenn ich einfach weitermache, nachdem der Fehler behoben wurde, läuft das Programm problemlos weiter. Möglicherweise ein Fehler in VS. Aber zur Laufzeit ist der Fehler immer noch vorhanden.
Was verursacht dieses Problem? Wie verhindere ich das Auftreten?
Sorry das Beispiel war leicht falsch. Ich habe bearbeitet und repariert. Es gab tatsächlich kein Zwischenobjekt, nur ein Elternobjekt, das als generische Liste von Kindobjekten enthält. Ich habe die Eigenschaft Datamember nicht auf dem Raster festgelegt. Aber danke für deine Hilfe trotzdem. – ptutt
OK, ich habe meine Antwort bearbeitet. Ich hoffe, es ist nützlich. – gcores