title: Binding a Winform to a Dictionary or Key/Value List
body: <p>I have a Winforms application that dynamically instantiates external form objects for use in a configuration UI.  Each dynamically-instantiated form is placed in a TabPage.</p>
  
  <p>I would like to create a property that will accept a Dictionary or Key/Value list, and populate the form with those values, matching up the value of the control with the value of the Key in the dictionary.  Conversely, the property will also return a Key/Value list that corresponds to the values of the controls in the Winform.</p>
  
  <p>Is this a simple binding problem, or do I need to write custom code?  What would that code look like?</p>
  
  <p>In the past, I have accomplished this by writing a <a href="http://en.wikipedia.org/wiki/Data_transfer_object" rel="nofollow">DTO</a> class, using XML serialization and deserialization to persist the class's data, and hooking up the form fields to the DTO object's fields.  The problem is, since the form is dynamically instantiated from an external DLL, there's no way to "reference" this DTO class statically, so I'm looking for a more dynamic approach.</p>