//Monitor and handle the scroll viewer private async void ScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e) { try { //Get current scroll item int CurrentOffSetId = EventsScrollViewer.GetCurrentOffsetIndex(ListView_Items); if (CurrentOffSetId < 0) { return; } //Update the current item count AppVariables.CurrentShownItemCount = CurrentOffSetId + 1; if (stackpanel_Header.Visibility == Visibility.Visible || AppVariables.CurrentTotalItemsCount == 0) { textblock_StatusCurrentItem.Text = AppVariables.CurrentShownItemCount.ToString(); } else { textblock_StatusCurrentItem.Text = AppVariables.CurrentShownItemCount + "/" + AppVariables.CurrentTotalItemsCount; } //Update the shown item content await EventsScrollViewer.ScrollViewerUpdateContent(ListView_Items, CurrentOffSetId); } catch { } }
//Monitor and handle the scroll viewer private async void ScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e) { try { //Get current scroll item VirtualizingStackPanel virtualizingStackPanel = AVFunctions.FindVisualChild <VirtualizingStackPanel>(ListView_Items); Int32 CurrentOffSetId = (virtualizingStackPanel.Orientation == Orientation.Horizontal) ? (Int32)virtualizingStackPanel.HorizontalOffset : (Int32)virtualizingStackPanel.VerticalOffset; //Update the current item count textblock_StatusCurrentItem.Tag = (CurrentOffSetId + 1).ToString(); Int32 HeaderTargetSize = Convert.ToInt32(stackpanel_Header.Tag); Int32 HeaderCurrentSize = Convert.ToInt32(stackpanel_Header.Height); if (HeaderCurrentSize == HeaderTargetSize || AppVariables.CurrentTotalItemsCount == 0) { textblock_StatusCurrentItem.Text = textblock_StatusCurrentItem.Tag.ToString(); } else { textblock_StatusCurrentItem.Text = textblock_StatusCurrentItem.Tag.ToString() + "/" + AppVariables.CurrentTotalItemsCount; } //Update the shown item content await EventsScrollViewer.ScrollViewerUpdateContent(ListView_Items, CurrentOffSetId); //Check if new items need to be loaded await EventsScrollViewer.ScrollViewerAddItems(ListView_Items, CurrentOffSetId); } catch { } }