手动生成的DataGridViewCheckBoxColumn不更新绑定对象

时间:2011-05-22 22:00:46

标签: .net datagridview

使用DataGridView.AutoGenerateColumns = True时,绑定对象的布尔属性可以正常更新,但不能在我手动添加列时更新。值仍为假。

添加DataGridViewCheckBoxColumn时是否需要设置一些参数?设置.DataPropertyName似乎不够。

我看到它有一些其他属性,如.TrueValue,.FalseValue等,但不确定它们的用途是什么?

或者我是否需要编写某种类型的自定义CellFormatting / CellValidating事件?

编辑: 我通过扩展方法添加列:

    <Extension()> _
Public Sub AddCheckBoxColumn(ByVal dgv As DataGridView, ByVal propertyName As String, ByVal colName As String, ByVal fillWeight As Integer)
    Dim col As New DataGridViewCheckBoxColumn(False)
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
    col.HeaderText = colName
    col.Name = colName
    col.Width = fillWeight
    col.DataPropertyName = propertyName
    dgv.Columns.Add(col)
End Sub

2 个答案:

答案 0 :(得分:0)

也许你拼错了绑定字段的名字?只要您的数据列是布尔类型,它就应该工作。

如果没有,TrueValue将表示选中复选框时设置的值,并且FalseValue将在未设置复选框时表示值,例如,您可以将字符串“Checked”和“Unchecked”映射到string类型的字段。

  1. 从现场阅读是否正常工作?
  2. 您可以选中该复选框,还是单击它时保持未选中状态?

答案 1 :(得分:0)

发现我的错误。在不同的库中有一个具有相同名称的不完整的扩展方法。所以它没有使用我正在改变的方法。