DataGridViewComboBoxColumn 中的 CheckBox 列表 [Windows Form]

List of CheckBox in DataGridViewComboBoxColumn [Windows Form]

我试图在 DataGridView 中显示一个由多个复选框(复选框列表)组成的下拉列表。具体来说,DataGridView 提供了一个 DataGridViewComboBoxColumn,它允许有一个包含多个项目的下拉列表。但是,如果您尝试将复选框列表添加为列的数据源,您会发现解决方案不起作用(未显示复选框)。

下面link有一个关于"regular" ComboBox的解决方案:https://www.codeproject.com/Articles/31105/A-ComboBox-with-a-CheckedListBox-as-a-Dropdown

但是,我需要它用于 DataGridViewComboBoxColumn。有人知道可以做些什么来达到目标​​?感谢您的回答(我 link 以下代码示例)

for (int i = 0; i < dataGridView.Rows.Count; i++)
{
    // Put List of Checkboxes in DataGridViewComboBoxCell for each row of the Grid
    ((DataGridViewComboBoxCell) dataGridView.Rows[i].Cells[1]).DataSource = new List<CheckBox> { new CheckBox(), new CheckBox(), new CheckBox(), new CheckBox() };
}

我过去修改过 DataGridViewColumns(好吧,不完全是我自己,根据一些 CodeProject 烹饪书 :-)),所以我有一些想法。

然而,在这种情况下,可能行不通,这个想法有问题。您不仅需要更改单元格的外观,还需要考虑如何存储数据。您将如何为 每个 DataGridViewComboboxCell 分配一个单独的数据源?如果可能的话,这可能是一项相当广泛的工作,可能是 class 处理结构和事件。

如果我能提供一个解决方案,你可以有另一个对象(即在 CheckBoxColumnTextColumn 旁边的另一个 DataGridViw 将在 DataGridView1.SelectionChanged 上加载),或者你可以在该单元格的 CellClick 上以模态形式填充它,并在关闭时反馈所选项目字符串列表等。我过去做过很多次,但我认为没有 easy 方式周围。