This is actually something that we do (kindof) in our medical application. Not in regards to binding to a form property, which can be done easily by using the standard data binding, but there is the hitch. You will need to create a bindable collection to do what you are trying to do. Here is a generic declaration in VB (leaving out the rest of the code) of the collection and implementations to basically do what you need to do.
Public MustInherit Class ChildDependent
#Region " Events "
'''
''' Occurs when a property of this object has changed.
'''
Public Event Changed As EventHandler
'''
''' Raises the Changed event.
'''
Protected Overridable Sub OnChanged()
RaiseEvent Changed(Me, EventArgs.Empty)
End Sub
#End Region
End Class
Public MustInherit Class ChildDependentCollection(Of T As {ChildDependent, New})
Inherits System.Collections.ObjectModem.Collection(Of T)
Implements IBindingList, IComponent, ITypedList
End Class
If you have never used the generic collection, it makes it very easy to create a quick collection for any class type. All of the above code is going to be slightly overkill for what you are trying to do (that is why I left all of the body of the class out). But you will need to focus on two implementations above that will allow you to natively bind to grids, etc. Start with creating a collection that exposes a simple class and implements IBindingList on the collection. Once you implement IBindingList, you will then be able to take your collection and attach it as a data source to a grid, for example, and all rows within the collection will show in the grid. Once you get a shell of this working, then you can take the next step as many lights will come on when you start this type of implementation.