如何使用Entity框架取消选中datagridview中的复选框

时间:2016-08-20 07:11:01

标签: winforms datagridview

我在winform上有datagridview。它必然来自以下代码:

PoolEntities db = new PoolEntities();

var Result = db.General_Pool_Detail.Where(g => g.Pool_Name == cbxGLType.SelectedValue && g.Mapped_Date == dt).Select(s=>                  
new { Selected = true, s.Gen_Pool_ID, s.GSL_Code, s.Amount }).ToList();

dgvGeneralPoolData.DataSource = Result;

代码完美无缺。但是当我取消选中datagridview上的复选框时,它不起作用。

在datagirdview事件中,我编写了以下代码:

private void dgvGeneralPoolData_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (dgvGeneralPoolData.Rows[e.RowIndex].Cells[0].Selected)
        {
Boolean IsChecked = (Boolean) dgvGeneralPoolData.Rows[e.RowIndex].Cells[0].Value;

            if (IsChecked)
            {
              dgvGeneralPoolData.Rows[e.RowIndex].Cells[0].Value = false;
            }
        }
    }

另外,我想将datagridview中所做的更改保存到数据库中。 请帮忙。

2 个答案:

答案 0 :(得分:0)

EditMode属性

  1. 检查datagridview的editmode属性。

答案 1 :(得分:0)

是否甚至点击了您的点击事件?调试时它究竟在哪里破坏?如果可以的话,尝试调试并提供更多信息。

1)调试并确保事件处理程序确实有效。有时当你复制粘贴代码时,事件处理程序没有被设计者注册,所以尝试删除CellClick并在网格视图上再次输入代码,当你添加=符号它应该给你一个选项来创建ClickCell方法为您服务。在点击事件中应该是这样的。

if (e.RowIndex != -1)
{
    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dgvGeneralPoolData.CurrentRow.Cells["ColumnNumberHere"];
    if (chk.Value == null || chk.Value = false)
    { 
        chk.Value = true;
    }
    else
    {
        chk.Value = false
    }
}

2)确保它在InitializeComponent()

this.dgvGeneralPoolData.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvGeneralPoolData_CellContentClick);