使用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
答案 0 :(得分:0)
也许你拼错了绑定字段的名字?只要您的数据列是布尔类型,它就应该工作。
如果没有,TrueValue将表示选中复选框时设置的值,并且FalseValue将在未设置复选框时表示值,例如,您可以将字符串“Checked”和“Unchecked”映射到string类型的字段。
答案 1 :(得分:0)
发现我的错误。在不同的库中有一个具有相同名称的不完整的扩展方法。所以它没有使用我正在改变的方法。