vb.net datagridviewcombobox中的单元格值在cellvaluechanged事件运行之前变回

时间:2019-01-12 11:12:58

标签: vb.net datagridview combobox

我已经用对象列表填充了datagridview。在此列表中,添加了另一个列表,该列表填充了一个datagridcombobox。填充一切正常,但是当我想更改datagridcombobox中的值时,会在触发cellvaluechange事件之前自动将其设置回去。

在使用数据网格中的对象之前,我使用了带有字符串的数据表,并用另一个数据表填充了组合框。此处,表2中的字符串与组合框的表1中的字符串相同。此过程运行良好,但我注意到使用类/对象比使用数据表更友好。

Activiteit类是这样的:

Public Class Activiteit

Property Id As Integer
Property Omschrijving As String
Property FactuurRegel As String

Public Sub New(id As Integer, omschrijving As String, factuurregel As String)
    Me.Id = id
    Me.Omschrijving = omschrijving
    Me.FactuurRegel = factuurregel
End Sub


Public Overrides Function ToString() As String
    Return Me.Omschrijving
End Function

datagridview组合框的填充如下:

Dim lActiviteiten As New List(Of Activiteit)
    lActiviteiten = LoadActiveiten()
    Dim dgAct As DataGridViewComboBoxColumn = DataGridUren.Columns(3)
    dgAct.DataSource = lActiviteiten
    dgAct.DisplayMember = "Omschrijving"
    dgAct.ValueMember = "Id"

我这样填充数据网格:

DataGridUren.AutoGenerateColumns = False
DataGridUren.DataSource = kl.FactuurRegels

Kl.factuurregels的构建如下:

Property Id As Integer
Property Medewerker As Medewerker
Property Datum As DateTime
Property Activiteit As Activiteit
Property Omschrijving As String
Property Tijd As Decimal
Property Tarief As Decimal
Property Specificatie As Boolean
Property Factureren As Boolean
Property NietFactureren As Boolean
Property Klant As FactKlant
Property Project As String

当我更改组合框激活项时,我希望cellvaluechanged事件捕获新的激活项并将其发送到MySQL数据库。不知何故,在我有机会获得新ID之前,将值重新设置了。

__添加了15.01.2019

我认为存在问题是因为datagridview的数据源仅包含1个对象,而de datagridviewcombobox中的对象列表中有更多对象。更改组合框时,他无法在数据源中找到数据。 可能会导致此问题,如果是,我该如何解决?

0 个答案:

没有答案