Hallo,
ich möchte zwei Controls mittels DataBinding verknüpfen und die OnPropertyChanged mit eigenen zwischengeschalteten Routinen versehen. Leider funktioniert mein Code nur in 1 Richtung. Am beispiel einer TrackBar, die bei einem Richtextcontrol die SelectionLength steuert, wird dies deutlich. Wenn ich die Trackbar.Value ändere, dann ändert sich die SelectionLength, wenn ich aber in der RTF mit der Maus die SelectionLength ändere, bleibt der Trackbar unverändert.
Peter
ich möchte zwei Controls mittels DataBinding verknüpfen und die OnPropertyChanged mit eigenen zwischengeschalteten Routinen versehen. Leider funktioniert mein Code nur in 1 Richtung. Am beispiel einer TrackBar, die bei einem Richtextcontrol die SelectionLength steuert, wird dies deutlich. Wenn ich die Trackbar.Value ändere, dann ändert sich die SelectionLength, wenn ich aber in der RTF mit der Maus die SelectionLength ändere, bleibt der Trackbar unverändert.
VB.NET-Quellcode
- Private Sub frm_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
- Dim rtfBinding = New Binding("Value", Me.rtf, "SelectionLength", _
- False, DataSourceUpdateMode.OnPropertyChanged)
- AddHandler rtfBinding.Format, AddressOf SelectionLength2TrackBar
- AddHandler rtfBinding.Parse, AddressOf TrackBar2SelectionLength
- trackBar1.DataBindings.Add(rtfBinding)
- End Sub
- Private Sub SelectionLength2TrackBar(ByVal sender As Object, _
- ByVal e As ConvertEventArgs)
- If e.Value Is Nothing Then Exit Sub
- e.Value = CInt(e.Value / 2)
- End Sub
- Private Sub TrackBar2SelectionLength(ByVal sender As Object, _
- ByVal e As ConvertEventArgs)
- If e.Value Is Nothing Then Exit Sub
- e.Value = CInt(e.Value * 2)
- End Sub
Peter