Powiązanie potomka powiązanego z zestawem jednostek podrzędnych nie jest aktualizowane

Mam tabelę SampleData, która ma tabelę podrzędną, Measurements. W moim WinForm, frmMain, pojedynczy obiekt SampleData jest powiązany ze źródłem SampleDataBindingSource; MeasurementsBindingSource ma SampleDataBindingSource jako swoje źródło danych, a Measurements jako DataMember. Zestaw pól tekstowych jest powiązany z SampleDataBindingSource; datagridview jest powiązany z MeasurementsBindingSource.

Dla frmMain mam także klasę prezentera, preMain, która zawiera właściwość CurrentSample typu SampleData. TheSampleDataBindingSource.DataSource jest związany z właściwością CurrentSample preMain.

Gdy przypisano wystarczającą liczbę właściwości w pomiarach, oblicza współczynnik FiringFactor, a jeśli współczynnik FiringFactor nie jest równy 1, dodaje kolejny element pomiaru do zestawu jednostek pomiaru CurrentSample:

Partial Class Measurement

    Private Sub UpdateFiringFactor()
        Dim necessaryDataIsAvailable As Boolean = (Me.CrucibleMass IsNot Nothing And _
                                                   Me.CrucibleSampleFiredMass IsNot Nothing And _
                                                   Me.CrucibleSampleMass IsNot Nothing)
        If necessaryDataIsAvailable Then
            Me.FiringFactor = CDbl((Me.CrucibleSampleFiredMass - Me.CrucibleMass) / (Me.CrucibleSampleMass - Me.CrucibleMass))
            If Me.FiringFactor <> 1 Then
                Me.SampleData.AddNewMeasurement()
            End If
        End If
    End Sub

    Private Sub OnCrucibleMassChanged()
        UpdateFiringFactor()
    End Sub


    Private Sub OnCrucibleSampleFiredMassChanged()
        UpdateFiringFactor()
    End Sub


    Private Sub OnCrucibleSampleMassChanged()
        UpdateFiringFactor()
    End Sub
End Class

Kiedy wprowadzam wartości CrucibleMass, CrucibleSampleMass i CrucibleSampleFiredMass w datagridview, metoda UpdateFiringFactor działa poprawnie i ostatecznie otrzymuję kolejny element pomiaru dodany do zestawu jednostek pomiaru CurrentSample. Jednak datagridview nie pokazuje nowego wiersza, a MeasurementsBindingSource ma tylko 1 rekord (aleCurrentSample.Measurements.Count = 2).

Dlaczego zmianaCurrentSample.Measurements nie propagowaćMeasurementsBindingSource? próbowałemMeasurementsBindingSource.ResetBindings(False), MeasurementsDataGridView.Refresh, SampleDataBindingSource.ResetBindings(False), ale nic nie wydaje się aktualizowaćMeasurementsBindingSource lub jego datagridview.

questionAnswers(1)

yourAnswerToTheQuestion