DataGridView中的动态ComboBox

时间:2011-10-04 13:28:25

标签: c# winforms dynamic datagridview datagridcomboboxcolumn

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

  • 有没有办法通过数据绑定单独完成此操作(可能是IEnumerable,基本上是all.Except(selected) Linq查询)?
  • 如果仅靠数据绑定是不够的,有没有比我找到的例子更好的方法呢?

我对WinForms的开发有点新意,所以很难分辨出好的建议“是的......这样做会有所帮助。”

1 个答案:

答案 0 :(得分:1)

我担心你的搜索到目前为止是正确的 - 没有更好的方法可以在同一个DataGridView列中为组合框提供不同的列表而不是订阅事件(通常是CellBeginEditCellEndEdit然后设置个人DataGridViewComboBoxCell)的数据源。

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