private async void ListViewOnLoaded(object sender, RoutedEventArgs e)
        {
            if (!(_listView.ItemsPanelRoot is ItemsStackPanel itemsStackPanel))
            {
                return;
            }

            _itemsStackPanel = itemsStackPanel;

            _scrollViewer = VisualTreeHelperUtils.Child <ScrollViewer>(_listView);

            // This event handler loads more items when scrolling.
            _scrollViewer.ViewChanged += ScrollViewerOnViewChanged;

            // This event handler loads more items when size is changed and there is more
            // room in ListView.
            _itemsStackPanel.SizeChanged += ItemsStackPanelOnSizeChanged;

            await LoadMoreItemsAsync(itemsStackPanel);
        }
Exemple #2
0
        private async void btnSend_Click(SplitButton sender, SplitButtonClickEventArgs args)
        {
            if (isTutorialPlaying)
            {
                var root = VisualTreeHelperUtils.FindParent <MainPage>(this);
                if (root != null)
                {
                    root.TutorialStepDone();
                }
            }
            else
            {
                IsEnabled = false;
                IsLoading = true;

                await Task.Run(async() =>
                {
                    // Figure out who will be feedbacked
                    if (CurrentBatch.Teachers.Count == 0)  // If user didn't load teachers we gonna
                    {
                        CurrentBatch.Teachers = await Provider.GetFeedbackEntries();
                    }

                    var filtered        = await GetFilteredTeacher();
                    var includedTeacher = filtered.Where(x => !CurrentBatch.ExcludeTeachers.Any(p => p.ID == x.ID)).Select(x => SendFeedback(x)).ToList();

                    int count   = includedTeacher.Count;
                    int ftcount = 0;
                    while (includedTeacher.Count() > 0)
                    {
                        var finishedTask = await Task.WhenAny(includedTeacher);
                        ftcount++;
                        await Dispatcher.RunIdleAsync(x => FBStatusCount = $"{ftcount}/{count}");
                        includedTeacher.Remove(finishedTask);
                    }
                });

                IsEnabled = true;
                IsLoading = false;
            }
        }