DataGridView中的动态ComboBox

我有一个包含4列的DataGridView,其中一列是下拉列表(ComboBox)。 此列中的值必须是不同的,因此一旦在一行中选择了给定的下拉值,我希望它在其他行的任何下拉列表中都不可用。 如果未选择给定值,则应再次显示在下拉列表中。 我发现了一些类似例子的文章( 1,2,3 ); 但是,所有这些似乎都涉及订阅事件并手动填充ComboBox。

  • 是否有办法单独使用数据绑定(可能是IEnumerable,基本上是一个all.Except(selected) Linq查询)?
  • 如果单独数据绑定是不够的,有没有比我找到的例子更好的方法呢?

我对WinForms的开发有点新,所以很难分辨出“是啊……那会起作用的好建议”。

到目前为止,我担心你的搜索是正确的 – 没有更好的方法在同一个DataGridView列中为combobox提供不同的列表而不是订阅事件(通常是CellBeginEditCellEndEdit ,然后为单个DataGridViewComboBoxCell设置DataSource)。

通过这方面的证据,我将向您介绍由Microsoft的DataGridView项目经理Mark Rideout编写的优秀DataGridView常见问题解答 。 常见问题解答有一个完整的问题解决方案,与您发布的链接非常相​​似。