예제 #1
0
        private void UpdatePagesLayout(int startIndex)
        {
            if (ItemsPerPage == 0)
            {
                return;
            }

            if (VisiblePagesCount == 0)
            {
                VisiblePagesCount = 1;
            }

            if (TotalItems > 0)
            {
                double pagesCountD = Math.Ceiling((double)TotalItems / (double)ItemsPerPage);

                TotalPagesCount = (int)pagesCountD;

                Pages = new ObservableCollection <PageSelectorItem>();

                if (TotalPagesCount > VisiblePagesCount)
                {
                    int ss = startIndex;
                    int currentVisiblePagesCount = TotalPagesCount - startIndex;

                    if (currentVisiblePagesCount < VisiblePagesCount)
                    {
                        int t = VisiblePagesCount - currentVisiblePagesCount;
                        ss = ss - t;
                    }

                    for (int i = ss; i < ss + VisiblePagesCount && i < TotalPagesCount; ++i)
                    {
                        PageSelectorItem page = new PageSelectorItem(i);
                        Pages.Add(page);
                    }
                }
                else // display all pages, since their count is less then max visible pages restriction parameter
                {
                    for (int i = 0; i < TotalPagesCount; ++i)
                    {
                        PageSelectorItem page = new PageSelectorItem(i);
                        Pages.Add(page);
                    }
                }
            }
            else
            {
                Pages = new ObservableCollection <PageSelectorItem>();
            }

            CurrentPageIndex = startIndex;
            MarkPageItems();
            UpdateMoreItemsPlaceholder();
        }
예제 #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button button = sender as Button;

            if (button == null)
            {
                return;
            }

            PageSelectorItem pageItem = button.DataContext as PageSelectorItem;

            if (pageItem != null)
            {
                int newPageIndex = pageItem.PageIndex;

                if (newPageIndex != CurrentPageIndex)
                {
                    CurrentPageIndex = pageItem.PageIndex;
                    MarkPageItems();
                }
            }
        }