title: Binding a data-source is changing my columns
body: <p>I'm programatically binding a <code>DataGridView</code>'s dataset to a <code>List&lt;MyType&gt;</code>. I set the column names and types up in the designer:</p>
  
  <p><a href="https://i.stack.imgur.com/LoXyo.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/LoXyo.png" alt="enter image description here"></a></p>
  
  <p>When I first bind the list, after populating it, things look great:</p>
  
  <p><a href="https://i.stack.imgur.com/FqNrx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/FqNrx.png" alt="enter image description here"></a></p>
  
  <p>But then when I re-bind the dataset to the list (to make it update after repopulating the list) the column names and types seem to be auto-generated from the property names (note the spaces disappear) and types:</p>
  
  <p><a href="https://i.stack.imgur.com/zCt9N.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zCt9N.png" alt="enter image description here"></a></p>
  
  <p>My code when populating the <code>List</code> looks like this:</p>
  
  <pre><code>GridView.DataSource = null;
  ListOfItems.Clear();
  Populate(ListOfItems);
  GridView.DataSource = ListOfItems
  </code></pre>
  
  <p>I'm not very happy about this hacky way of resetting the binding but it doesn't seem to work otherwise, modifying the list contents doesn't refresh the view.</p>
  
  <p>Is this a question of settings on the GridView, or do I need to modify my code?</p>