title: Dynamic ComboBox in a DataGridView
body: <p>I have a DataGridView with 4 columns, one of them being a drop-down (ComboBox) column.  The values in this column must be distinct so once a given drop-down values is selected in a row, I'd like it to not be available in any of the drop-downs in other rows.  If a given value is unselected it should show up in the drop-downs again.  I found a few articles with similar examples (<a href="http://codeedifice.blogspot.com/2007/12/dynamic-combobox-in-datagridview.html" rel="nofollow noreferrer">1</a>,<a href="https://stackoverflow.com/questions/3551768/databinding-of-datagridviewcomboboxcolumn">2</a>,<a href="https://stackoverflow.com/questions/1089889/how-do-i-set-up-a-datagridview-comboboxcolumn-with-a-different-datasource-in-each">3</a>); however, all of them seem to involve subscribing to an event and manually populating the ComboBox.</p>
  
  <ul>
  <li>Is there a way to accomplish this with databinding alone (maybe to an IEnumerable that's basically a <code>all.Except(selected)</code> Linq query)?</li>
  <li>If databinding alone isn't enough, is there a better way to do it than the examples I found?</li>
  </ul>
  
  <p><em>I'm a bit new to WinForms development so having trouble telling apart good advice from "yeah...that'll work, sort of".</em></p>