首页 > 解决方案 > 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 列的情况下,有没有办法将列名与类属性名匹配?

标签: vb.net

解决方案


a的DataPropertyName属性DataGridViewColumn确定它绑定到的数据源的列/属性。您可以在设计器或代码中自己将列添加到网格中,并为每一列设置该属性。在设置 之前DataSource,您设置AutoGenerateColumnsFalse,然后只有现有列将按指定绑定,并且不会创建新列。


推荐阅读