Moin FZelle,
konfus? ich habe gar nicht den Eindruck, dass es so konfus war
gestern nachmittag bin ich auch etwas zurückgetreten und bin am (späten) Abend jedoch erfolgreich wieder hervorgekommen
Bei meiner ursprünglich Variante kam ich noch ohne die Verwendung einer "BindingSource" aus, aber nicht ohne einen zusätzlichen TextBox-Event.
Ich habe mir aber die Verwendung der "BindingSource" noch einmal genauer angesehen und eine Lösung für mich gefunden, die etwas eleganter als die zuvor beschriebene ist. Diese möchte ich Dir (und anderen) natürlich nicht vorenthalten. Ich füge mal ein bischen Code ein:
...
Private dt As New DataTable
Private WithEvents BS As New BindingSource()
...
BS.ResetBindings(False)
BS.SuspendBinding()
BS.DataSource = dt
With TimeWindow ' die Properties für mein Steuerelement werden
' gesetzt
.DataBindings.Clear()
.DataBindings.Add("TimeStartMin", BS, "start")
.DataBindings.Add("TimeStart", BS, "start")
.DataBindings.Add("TimeStop", BS, "stop")
.DataBindings.Add("TimeStopMax", BS, "stop")
End With
With cbo ' mit der ComboBox wird durch die BindingSource bzw.
' DataTable navigiert
.DataSource = BS
.DisplayMember = "Name"
.ValueMember = "ID"
End With
BS.ResumeBinding()
BS.ResetCurrentItem() Die Verwendung der "BindingSource" liefert verschiedene Events, die sich hervorragend für meine Zwecke eignen, z.B.:
- CurrentChanged
- CurrentItemChanged
- ListChanged
- PositionChanged
Alle Events kommen NACH der Aktualisierung der DataBindings und das ist hier ja wichtig. Letztendlich habe ich mich dann für "CurrentItemChanged" entschieden:
Private Sub BS_CurrentItemChanged(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles BS.CurrentItemChanged
If Not (BS.IsBindingSuspended) Then
TimeWindow.Start() ' mein Steuerelement wird "gestartet"
End If
End Sub Die Verwendung von SuspendBinding und ResumeBinding war zusätzlich nötig, um einen definierten Anfangszustand herzustellen.
Ich denke, mit dieser Lösung kann ich gut leben.
Vielen Dank an Dich FZelle, letztendlich hast Du mich mit der "BindingSource" auf den Weg gebracht. Zuvor hatte ich noch nicht damit gearbeitet.
Viele Grüße auch an alle Mitleser
Helmut
Beitrag wurde zuletzt am 25.11.11 um 10:01:04 editiert. |