【问题标题】:Dynamic ComboBox in a DataGridViewDataGridView 中的动态组合框
【发布时间】:2011-10-04 13:28:25
【问题描述】:

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

  • 有没有办法单独使用数据绑定来完成此任务(可能是一个基本上是all.Except(selected) Linq 查询的 IEnumerable)?
  • 如果仅数据绑定还不够,有没有比我找到的示例更好的方法?

我对 WinForms 开发有点陌生,所以很难区分好建议和“是的……那会奏效”。

【问题讨论】:

    标签: c# winforms dynamic datagridview datagridcomboboxcolumn


    【解决方案1】:

    恐怕到目前为止您的搜索是正确的 - 没有比订阅事件(通常是 CellBeginEditCellEndEdit 然后将 DataSource 设置为个人DataGridViewComboBoxCell)。

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

    【讨论】:

    • 您不会碰巧知道 WPF 控件是否会变得更好?
    • @R0MANARMY 我没有专门尝试过使用任何 WPF 网格的这种链式组合框源,但总的来说,我发现 WPF 更好用——即使是在做一些不寻常的事情时- 比winforms。很确定您可以使用高级 WPF 绑定将特定控件绑定到某些功能以支持此功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多