title: DataGridViewComboBoxCell Empty Value
body: <p>I have a DGV with a few combo box columns. These columns are bound to objects that are basically lookup items in a database. I'd like to provide a blank option for my users to set these lookup items to NULL where it's applicable. I've tried various methods of adding a Null item to the list to allow the user to select the empty value, but it does not seem to work.</p>
  
  <p>Is there a best method to do this that will allow me to bind my list to the control, and also allow the user to enter a null value without having to press Ctrl+0?</p>
  
  <pre><code>Public Class RootItem
      Public Overridable Property Lookup
      Public Overridable Property Type as String
      Public Overridable Property Active as Boolean
  End Class
  
  Public Class LookupItem
      Public Overridable Property ID As Integer = -1
      Public Overridable Property Abbreviation As String = ""
      Public Overridable Property Name As String = ""
      Public Overridable Property Description As String = ""
  
      Public Overrides Function ToString() As String
          Return Abbreviation
      End Function
  
      Public Overridable ReadOnly Property Self
          Get
              Return Me
          End Get
      End Property
  End Class
  
  ' My databinding
  ' ...
  private rootItems as IList(of RootItem) = session.QueryOver(of RootItem).List
  
  Private lookups As IList(Of LookupItem) = session.QueryOver(Of LookupItem).List
  
  With LookupItemColumn
      .DataSource = lookupItems
      .DataPropertyName = PropUtil.GetName(Of RootItem)(Function(x) x.LookupItem)
      .DisplayMember = PropUtil.GetName(Of LookupItem)(Function(x) x.Abbreviation)
      .ValueMember = PropUtil.GetName(Of LookupItem)(Function(x) x.Self)
  End With
  
  myDgv.DataSource = New SortableBindingList(Of RootItem)(rootItems)
  </code></pre>