0

我有一个数据网格视图。它有 2 个布尔类型的列。现在我想要做的是,当我点击一个复选框时,同一行中的另一个复选框应该被取消选中。也就是说,一次只能在特定行中选中一个复选框。用户不能同时选中 2 个复选框。

我怎样才能做到这一点?我尝试使用 cellcontentclick 和 cellcontentChanged 事件。没有任何作用。

任何输入?

4

2 回答 2

0

您可以使用 CellEndEdit 事件或 CellLeave 事件

当您在编辑后离开单元格时,此事件将触发。在以下代码段中,Column1 是您的第一个复选框,Column2 是您的另一个复选框。

       private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
        if (Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value))
            dataGridView1.Rows[e.RowIndex].Cells["Column2"].Value = false;
        }
于 2013-07-02T04:39:04.347 回答
0

使用DataGrid_CellEditEnding

在遍历 DataSource 的过程中,如果您发现任何选中的列 ( boolean true),则将其取消选中 ( boolean false)。希望它会帮助你

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
         foreach (var Item in dataGridView1.ItemsSource)
         {
             if(Item.isChecked) 
                 Item.isChecked = false;
         }
    if (Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["Column1"].Value))
        dataGridView1.Rows[e.RowIndex].Cells["Column2"].Value = false;
    }
于 2013-07-02T05:26:29.633 回答