Заполнение двух ComboBoxColumns в DataGridView - PullRequest
0 голосов
/ 15 января 2019

У меня есть два ComboBoxColumns (col_fon является первым и col_mon вторым) в DataGridView. Однако только один ComboBoxColumn (col_mon), который является вторым ComboBoxColumn, существующим в DataGridView, отображает данные:

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

Каждый ComboBoxColumn, присутствующий в DatagridView, имеет свой собственный 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

Я пытался использовать события EditingControlShowing и SelectedIndexChanged, но первое ничего не делает с DataGridView, а другое нельзя использовать с этими столбцами (потому что они находятся в DataGridView вместо того, чтобы их создавать и вставлять в DataGridView)

Есть ли другая альтернатива для загрузки DataSource в уязвимом столбце без проблем с другим (и функциональным ComboBoxColum)? Заранее спасибо

1 Ответ

0 голосов
/ 15 января 2019

Наконец, проблема заключалась в свойствах ComboBoxColumn, которые ReadOnly были установлены в ReadOnly = True. Я изменил его на False и теперь он показывает нужные данные.

...