title: System.ArgumentException when trying to use DataGridViewComboBox and ValueMember
body: <pre><code>ModelLinkControl modelLinkControl = new ModelLinkControl();
  modelLinkControl.bindingSourceCModels.DataSource = cModels;
  modelLinkControl.bindingSourceAModels.DataSource = aModels;
  modelLinkControl.bindingSourceModelLinks.DataSource = modelLinks;
  </code></pre>
  
  <p>modelLinks is a <code>List&lt;MyClass&gt;</code> containing 3 properties; ID, aID and cID. aID and cID is used for DataPropertyName in corresponding <code>DataGridColum</code>.
  aModels and cModels are <code>List&lt;AnotherClass&gt;</code> containing 2 properties; ID and Name, that I use for <code>ValueMember = "ID"</code> and <code>DisplayMember = "Name"</code> on corresponding <code>ComboBox</code>.</p>
  
  <p>On the last line of the snippet above i get;</p>
  
  <pre><code>System.ArgumentException occurred
    Message=Field called ID does not exist.
    Source=System.Windows.Forms
    StackTrace:
         at System.Windows.Forms.DataGridViewComboBoxCell.InitializeValueMemberPropertyDescriptor(String valueMember)
         at System.Windows.Forms.DataGridViewComboBoxCell.OnDataGridViewChanged()
         at System.Windows.Forms.DataGridViewRowCollection.AddInternal(DataGridViewRow dataGridViewRow)
         at System.Windows.Forms.DataGridView.RefreshRows(Boolean scrollIntoView)
         at System.Windows.Forms.DataGridView.RefreshColumnsAndRows()
         at System.Windows.Forms.DataGridView.DataGridViewDataConnection.ProcessListChanged(ListChangedEventArgs e)
         at System.Windows.Forms.DataGridView.DataGridViewDataConnection.currencyManager_ListChanged(Object sender, ListChangedEventArgs e)
         at System.Windows.Forms.CurrencyManager.OnListChanged(ListChangedEventArgs e)
         at System.Windows.Forms.CurrencyManager.List_ListChanged(Object sender, ListChangedEventArgs e)
         at System.Windows.Forms.BindingSource.OnListChanged(ListChangedEventArgs e)
         at System.Windows.Forms.BindingSource.ResetBindings(Boolean metadataChanged)
         at System.Windows.Forms.BindingSource.SetList(IList list, Boolean metaDataChanged, Boolean applySortAndFilter)
         at System.Windows.Forms.BindingSource.ResetList()
         at System.Windows.Forms.BindingSource.set_DataSource(Object value)
    InnerException: 
  </code></pre>
  
  <p>I have checked the spelling of all fields, classes and properties. I removed all Columns in the designer and re-added them again, carefully checking all spelling.
  The ID's from modelLinks does exist in aModels and cModels. Also tried changing from <code>List&lt;&gt;</code> to <code>BindingList&lt;&gt;</code> on all 3 lists. And i just keep getting the same error.</p>
  
  <p>If I remove <code>ValueMember = "ID"</code> I do get another error (since <code>AnotherClass</code> does not match a <code>Guid</code>).</p>
  
  <p>I don't know what to attempt next...</p>
  
  <p>Designer generated:</p>
  
  <pre><code>// 
  // dataGridViewModels
  // 
  this.dataGridViewModels.AllowUserToAddRows = false;
  this.dataGridViewModels.AllowUserToDeleteRows = false;
  this.dataGridViewModels.AutoGenerateColumns = false;
  this.dataGridViewModels.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
  this.dataGridViewModels.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
  this.dataGridViewModels.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
  this.dataGridViewModels.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
  this.ColumnC,
  this.ColumnA});
  this.dataGridViewModels.DataSource = this.bindingSourceModelLinks;
  this.dataGridViewModels.Dock = System.Windows.Forms.DockStyle.Fill;
  this.dataGridViewModels.Location = new System.Drawing.Point(0, 0);
  this.dataGridViewModels.Name = "dataGridViewModels";
  this.dataGridViewModels.RowHeadersVisible = false;
  this.dataGridViewModels.Size = new System.Drawing.Size(794, 445);
  this.dataGridViewModels.TabIndex = 0;
  // 
  // ColumnC
  // 
  this.ColumnC.DataPropertyName = "cID";
  this.ColumnC.DataSource = this.bindingSourceCModels;
  this.ColumnC.HeaderText = "cModel";
  this.ColumnC.Name = "ColumnC";
  this.ColumnC.DisplayMember = "Name";
  this.ColumnC.ValueMember = "ID";
  // 
  // ColumnA
  // 
  this.ColumnA.DataPropertyName = "aID";
  this.ColumnA.DataSource = this.bindingSourceAModels;
  this.ColumnA.HeaderText = "aModel";
  this.ColumnA.Name = "ColumnA";
  this.ColumnA.DisplayMember = "Name";
  this.ColumnA.ValueMember = "ID";
  </code></pre>