Vb.net DataGridView数据源集合列
我有以下课程:Vb.net DataGridView数据源集合列,vb.net,Vb.net,我有以下课程: Imports Cognex.InSight Imports Newtonsoft.Json Public Class VariableViewModel Public Enum VariableTypes EditRegion Enumerated Input Momentary Toggle End Enum Public Property CellLocation
Imports Cognex.InSight
Imports Newtonsoft.Json
Public Class VariableViewModel
Public Enum VariableTypes
EditRegion
Enumerated
Input
Momentary
Toggle
End Enum
Public Property CellLocation As CvsCellLocation
Public Property Name As String
Public Property Values As Dictionary(Of String, String)
Public Property VariableType As VariableTypes
Public Function ToJson() As String
Return JsonConvert.SerializeObject(New With {Key Name, CellLocation, Values, VariableType})
End Function
End Class
该类正在被序列化,然后最终反序列化并存储到列表中。此列表最终使用BindingSource绑定到DataGridView,如下所示:
' Private ReadOnly _variables As List(Of VariableViewModel)
Dim source As BindingSource = New BindingSource() With {
.DataSource = _variables
}
DataGridViewVariables.DataSource = source
我遇到的问题是DataGridView中的列名与类上的属性不是一对一的匹配。另外,我想在DataGridView的末尾添加两个按钮列
如果不清除列,然后绑定DataGridView,然后手动设置按钮列,是否有方法将列名与类属性名匹配?DataGridViewColumn的
DataPropertyName
属性决定了它绑定到的数据源的哪个列/属性。您可以自己在设计器或代码中向网格添加列,并为每列设置该属性。在设置数据源之前,您将AutoGenerateColumns
设置为False
,然后只会按指定绑定现有列,而不会创建新列。DataGridViewColumn的DataPropertyName
属性决定了它绑定到的数据源的哪个列/属性。您可以自己在设计器或代码中向网格添加列,并为每列设置该属性。在设置DataSource
之前,请将AutoGenerateColumns
设置为False
,然后仅按指定绑定现有列,不会创建新列。而您应该使用我在下面提供的答案,值得注意的是,您可以使用其DisplayIndex
独立控制网格中显示的顺序列。如果确实希望使用默认名称和后续按钮列显示所有数据源属性,则可以在设计时仅添加按钮列,设置DataSource
以在运行时自动创建其余列,然后设置DisplayIndex
属性以最后显示按钮列。虽然您应该使用我在下面提供的答案,值得注意的是,您可以使用其DisplayIndex
独立控制网格中显示的顺序列。如果确实希望使用默认名称和后续按钮列显示所有数据源属性,则可以在设计时仅添加按钮列,设置数据源
以在运行时自动创建其余列,然后设置显示索引
属性以最后显示按钮列。