Привязать объект в источнике данных к комбинированному списку просмотра данных VB.Net - PullRequest
0 голосов
/ 10 января 2019

Я столкнулся с проблемой в моем коде VB.Net.

У меня есть объект factuurregel со следующими свойствами:

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

Другой объект, который я использую, это activiteit:

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

В форме у меня есть сетка данных, где я использую следующий код:

Dim lActiviteiten As New List(Of Activiteit)
        lActiviteiten = LoadActiveiten()
        Dim dgAct As DataGridViewComboBoxColumn = DataGridUren.Columns(3)
        dgAct.DataSource = lActiviteiten

И

loadmwlist()
        Dim dgMW As DataGridViewComboBoxColumn = DataGridUren.Columns(1)
        With dgMW
            .ValueMember = dtmw.Columns("ID").ToString
            .DisplayMember = dtmw.Columns("Naam").ToString
            .DataSource = dtmw.Copy
        End With

где loadmwlist заполняет таблицу.

С обоими кодами комбинированный список в сетке данных заполнен правильно.

Проблема заключается в том, что, когда я устанавливаю объект factuurregel в качестве источника данных, только в выпадающем списке medewerker отображается правильное значение. Чтобы быть завершенным, объект medewerker строится так:

Property Id As Integer
    Property Naam As String

Почему источник данных корректен, когда я использую таблицу в качестве источника данных для комбинированного списка, но не когда я использую список объектов?

1 Ответ

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

Джмилхинни сказал:

Почему вы это делаете: .ValueMember = dtmw.Columns ("ID"). ToString вместо этого: .ValueMember = "ID"? Где вы устанавливаете DisplayMember и ValueMember из dgAct? Я не уверен что ты знаешь что эти свойства на самом деле делают, так что вы, вероятно, должны прочитать их. -

после чего я добавил

       dgAct.DisplayMember = "Omschrijving"
    dgAct.ValueMember = "Id"

Код работает, как и сейчас.

...