У меня есть ListView (native) с динамическим контентом, и я хочу знать, как определить, когда пользователь его прокручивает, но не стиль «isScrolling = true/false ", вместо этого я хочу знать, когда пользователь прокручивает его, и когда пользователь прокручивает его.Как обнаружить, когда ListView уходит, и когда он идет вверх
Я попробовал этот трюк: https://stackoverflow.com/a/27294644/4668642 Но проблема в том, что он возвращает только «истина/ложь» (на самом деле это стреляет Sub) и заливает Sub тоже (я имею в виду, я прокрутить ListView очень жесткий и Sub срабатывает несколько раз, поэтому действие, которое он прослушивает).
Я не знаю, существует ли родной путь (как событие, такое как ManipulationDelta [это не работает]) или другой трюк, подобный этому сообщению.
Это мой код сейчас:
'On a shared file'
Public Shared Function GetScrollViewer(depObj As DependencyObject) As ScrollViewer
If TypeOf depObj Is ScrollViewer Then
Return TryCast(depObj, ScrollViewer)
End If
For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(depObj) - 1
Dim child = VisualTreeHelper.GetChild(depObj, i)
Dim result = GetScrollViewer(child)
If result IsNot Nothing Then
Return result
End If
Next
Return Nothing
End Function
'on OnNavigatedTo event'
AddHandler GetScrollViewer(LVNot).ViewChanged, AddressOf LVNot_ViewChanged
'At the end of the Main.xaml.vb file'
Private Sub LVNot_ViewChanged()
If Cab.isUp = True Then
Cab.goDownSub()
End If
End Sub
Note1: "Кабина" является "Пользовательские AppBar управления" (UserControl), ISUP это логическая переменная, которая возвращает истину, когда Cab вверх (видимое), и False, когда он выключен (Скрыть), и goDownSub() - это Sub, который скрывает «Кабина»
Примечание2: Этот код выполнен с использованием VB (VisualBasic), но я также работаю с C#. У меня нет проблем с answerd, сделанным с C# вместо VB.