vb.net - DataGridView 数据源集列
问题描述
我有以下课程:
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 的末尾添加两个按钮列。
在不清除 Columns,然后绑定 DataGridView,然后手动设置 Button 列的情况下,有没有办法将列名与类属性名匹配?
解决方案
a的DataPropertyName
属性DataGridViewColumn
确定它绑定到的数据源的列/属性。您可以在设计器或代码中自己将列添加到网格中,并为每一列设置该属性。在设置 之前DataSource
,您设置AutoGenerateColumns
为False
,然后只有现有列将按指定绑定,并且不会创建新列。
推荐阅读
- netsuite - 带有字母和数字 ID 的 NetSuite 文件类型列表
- java - Processing: How can i make a function wait before running the next line?
- sockets - Does gRPC use sockets under the hood?
- python - 系统在python中找不到指定os.listdir的路径
- pattern-matching - OCaml GADTs - pattern matching matches wrong type of argument
- desktop-bridge - CS0012 You must add a reference to assembly Windows, Version 255,255,255,255 WindowsRuntime
- r - 使用最佳子集回归后如何选择回归模型?
- java - 基本 Java(FX) 项目的 InvocationTargetException 错误
- linked-list - JavaMail 中主题行的动态更改。
- python - 按特定元素排序元组列表,并按该元素的子字符串