在 DataGridView 中填充两个 ComboBoxColumns

Populating two ComboBoxColumns in DataGridView

我在 DataGridView 中有两个 ComboBoxColumns(第一个 col_fon,第二个 col_mon)。但是,DataGridView 中存在的第二个 ComboBoxColumn 只有一个 ComboBoxColumn (col_mon) 显示数据:

Private Sub Window_Load(sender As Object, e As EventArgs) Handles Me.Load

    col_fon.ValueMember = "Code"
    col_fon.DisplayMember = "Name"
    col_fon.DataSource = LoadComboFon()
    col_fon.SortMode = DataGridViewColumnSortMode.Automatic

    col_mon.ValueMember = "Code"
    col_mon.DisplayMember = "Name"
    col_mon.DataSource = LoadComboMon()
    col_mon.SortMode = DataGridViewColumnSortMode.Automatic

End Sub

存在于DatagridView中的每个ComboBoxColumn都有其适当的DataSource,通过以下方法加载(col_mon,即ComboBoxColumn 没有问题)使用与以下相同的方法):

Private Function LoadComboFon() As DataTable
    Dim dsParFon As New DataSet
    Dim dsFon As New DataSet
    Dim dtFon As New DataTable
    Dim Filter AS String
    Try
        Filter = "FONDO"
        dsParFon.Tables.Add("FONDOS")
        dsParFon.Tables("FONDOS").Columns.Add("FONDOS")
        dsParFon.Tables("FONDOS").Rows.Add(Filter)
        dsParFon.AcceptChanges()

        ' dsFon is loaded here with a method used by another classes

    Catch ex As Exception
        Throw
    End Try
    dtFon = dsFon.Tables(0)
    dtFon.Columns("CodeFon").ColumnName = "Code"
    Return dtFon

End Function

我尝试使用 EditingControlShowingSelectedIndexChanged 事件,但第一个对 DataGridView 没有任何作用,另一个不能与这些列一起使用(因为它们在 DataGridView 而不是创建并插入到 DataGridView)

是否有另一种方法可以在受影响的列中加载 DataSource 而不会出现另一个问题(和功能 ComboBoxColum)?提前致谢

问题最终出在 ComboBoxColumn 属性中,ReadOnly 是在 ReadOnly = True 中设置的。我将其更改为 False,现在它显示了所需的数据。