我有一个datagridview。它有2列,类型为boolean。现在我想要做的是,当我点击一个复选框时,应该取消选中同一行中的另一个复选框。也就是说,一次只能在特定行中选中一个复选框。用户不应该同时选中2个复选框。
我怎样才能做到这一点?我尝试使用cellcontentclick和cellcontentChanged事件。什么都行不通。
任何输入??
答案 0 :(得分:0)
您可以使用CellEndEdit Event或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;
}
答案 1 :(得分:0)
使用 DataGrid_CellEditEnding
在迭代数据源中,如果你发现任何已检查的列(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;
}