private async Task RedrawView()
        {
            ResetLayout();
            MainPanel.Children.Clear();
            var availableSize = await GetAvailableSize();

            MainPanel.Height = MeasurePanel(availableSize).Height;
            var window = GetRealizationWindow();

            RealizeWindow(window.Top, window.Bottom);
            oldWindow = window;
        }
        private void Render(bool isDown)
        {
            var currentWindow = GetRealizationWindow();

            if (isDown)
            {
                RealizeWindow(oldWindow.Bottom, currentWindow.Bottom);
            }
            else
            {
                RealizeWindow(currentWindow.Top, oldWindow.Top);
            }
            oldWindow = currentWindow;
        }
        private async Task ReloadEverything()
        {
            ResetLayout();
            MainPanel.Height = 0;
            MainPanel.Children.Clear();
            if (ItemsSource.Count == 0)
            {
                await LoadMoreItems();
            }
            var availableSize = await GetAvailableSize();

            var window = GetRealizationWindow();

            RealizeWindow(window.Top, window.Bottom);
            oldWindow = window;
        }