Example #1
0
        private async void GridViewPages_Loaded(object sender, RoutedEventArgs e)
        {
            await RunOnUIThreadAsync(CoreDispatcherPriority.High, () =>
            {
                if (GridViewPages.Items.Count >= 1)
                {
                    int index = ViewModel.SelectedPageIndex;

                    // fix GridView initially fails to select item by binding
                    GridViewPages.SelectedIndex = index;

                    // try scroll to selected item
                    try
                    {
                        GridViewItem item = (GridViewItem)GridViewPages.ContainerFromIndex(index);
                        Guard.IsNotNull(item, nameof(item));

                        BringIntoViewOptions options = new BringIntoViewOptions
                        {
                            AnimationDesired = false,
                        };
                        item.StartBringIntoView(options);
                    }
                    catch (Exception exc)
                    {
                        ViewModel.AppCenterService.TrackError(exc);
                    }
                }
            });
        }
Example #2
0
        private async void GridViewPages_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            await RunOnUIThreadAsync(CoreDispatcherPriority.Normal, () =>
            {
                if (GridViewPages.SelectionMode == ListViewSelectionMode.Single &&
                    e.AddedItems != null & e.AddedItems.Count != 0)
                {
                    // select page in view model
                    ViewModel.SelectedPageIndex = GridViewPages.SelectedIndex;

                    // scroll to newly selected item
                    try
                    {
                        GridViewItem item = (GridViewItem)GridViewPages.ContainerFromItem(e.AddedItems[0]);

                        BringIntoViewOptions options = new BringIntoViewOptions
                        {
                            AnimationDesired = true,
                        };
                        item.StartBringIntoView(options);
                    }
                    catch (Exception)
                    {
                    }
                }
                else if (GridViewPages.SelectionMode == ListViewSelectionMode.Single)
                {
                    try
                    {
                        GridViewPages.SelectedIndex = ViewModel.SelectedPageIndex;
                    }
                    catch (Exception) { }
                }
                else if (GridViewPages.SelectionMode != ListViewSelectionMode.Single)
                {
                    // connect items to view model
                    if (GridViewPages.SelectedRanges.Count == 0)
                    {
                        ViewModel.SelectedRanges = null;
                    }
                    else
                    {
                        ViewModel.SelectedRanges = GridViewPages.SelectedRanges;
                    }

                    // select last selected item in view model
                    if (e.AddedItems != null && e.AddedItems.Count != 0)
                    {
                        int index = GridViewPages.Items.IndexOf(e.AddedItems[e.AddedItems.Count - 1]);
                        ViewModel.SelectedPageIndex = index;
                    }
                }
            });
        }
 public void LlenarGridPaginas(IList <Pagina> paginas)
 {
     GridViewPages.DataSource = paginas;
     GridViewPages.DataBind();
 }