Hallo zusammen,
ich hab ein DataGrid in einem Frame und möchte mir von dem DataGrid den ScrollViewer holen um den Wert des ScrollToVerticalOffset zu setzen.
Leider bekomm ich schon von der Funktion VistualTreeHelper.GetChildrenCount(DataGrid) eine 0 zurück, wenn ich das ganze außerhalb des Frames mit dem selben DataGrid ausführe bekomm ich einen Wert zurück.
Funktioniert so etwas grundsätzlich nicht wenn man eine Page in ein Frame geladen hat?
Grüße
Konnte noch keiner Erfahrung damit sammeln oder hab ich meine Frage eventuell doof formuliert?
Grüße
Hi _Cashisclay,
die Frage ist wirklich sehr speziell, und besonders viel Kontext gibst du auch nicht mit dazu. Ich habe so etwas jedenfalls noch nie gebraucht, weder den ScrollViewer eines DataGrids, noch mußte ich jemals "eine Page in ein Frame" laden.
Besser wäre, wenn du mal beschreibst, was du eigentlich vor hast damit. Da gibt es bestimmt eine einfacherer Herangehensweise.
Weeks of programming can save you hours of planning
Habs gelöst, war nur dumm wie Scheiße .. 😕
Public Sub set_VerticalOffset_From_ScrollViewer(ByVal VerticalOffset As Double)
' --- interne Variablen Deklaration --- '
Dim iCount As Integer = 0
Try
If Not VisualTreeHelper.GetChildrenCount(DataGrid) = 0 Then
Do While iCount < VisualTreeHelper.GetChildrenCount(DataGrid)
If TypeOf (VisualTreeHelper.GetChild(DataGrid, iCount)) Is Border Then
Dim Border As Border = VisualTreeHelper.GetChild(DataGrid, iCount)
If Not VisualTreeHelper.GetChildrenCount(Border) = 0 Then
If TypeOf (VisualTreeHelper.GetChild(Border, iCount)) Is ScrollViewer Then
Dim ScrollViewer As ScrollViewer = VisualTreeHelper.GetChild(Border, iCount)
If ScrollViewer IsNot Nothing Then
ScrollViewer.ScrollToVerticalOffset(VerticalOffset)
End If
End If
End If
End If
iCount = iCount + 1
Loop
End If
Catch ex As Exception
Fehlerbehandlung = New Fehlerbehandlung
Fehlerbehandlung.Fehlermeldung = ex
Fehlerbehandlung.ShowDialog()
End Try
End Sub