1

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

  • 有没有办法仅通过数据绑定来实现这一点(可能是一个基本上是all.Except(selected)Linq 查询的 IEnumerable)?
  • 如果仅数据绑定还不够,有没有比我找到的示例更好的方法呢?

我对 WinForms 开发有点陌生,所以很难将好的建议与“是的......这会奏效,有点”区分开来。

4

1 回答 1

1

恐怕到目前为止您的搜索是正确的 - 没有比订阅事件更好的方法来为同一 DataGridView 列中的组合框提供不同的列表(通常CellBeginEdit然后CellEndEdit为个人设置 DataSource DataGridViewComboBoxCell)。

作为证据,我将向您指出由 Microsoft 的 DataGridView 项目经理 Mark Rideout 编写的出色的DataGridView 常见问题解答。常见问题解答对您的问题有完整的解决方案,与您发布的链接非常相​​似。

于 2011-10-04T21:35:16.580 回答