Basically you will have to bind the grid to your instance with
SelectedObject. Your properties will be decorated with attributes to
alter the way they are displayed and edited. If you need a listbox
with a set of possible values, an enumeration will do the trick. If
this is not the type of your property, you will certainly create and
attach a TypeConverter to it that will publish this set of values.
Many things are feasible with this control, you should really read
some resources listed on the mentioned web site.
Unfortunately, due to the inherent nature of the control coupled with
various design shortcomings, multiple ways of handling certain issues (which
only adds to the confusion), the inability to customize certain aspects of
the control (you can't change the color or font of individual rows for
instance), the inability to easily validate your properties (something as
simple as a range check on an "int' for instance), outright bugs which I
reported to MSFT, and worst of all perhaps, a woeful lack of comprehensive
documentation, it's very difficult to get a solid grip on all the issues
involved. A "TypeConverter" is only the beginning. The control is needlessly
complicated and I personally banged my head for 3+ weeks trying to figuring
it all out (with some issues still eluding me though I finally got it
working).