/// <summary> /// 变更当前分页的页码,并触发 <see cref="CurrentPageChanged"/> 事件。 /// </summary> /// <param name="page">要设置的分页页码。</param> public async Task ChangeCurrentPage(int page) { CurrentPage = page; await CurrentPageChanged.InvokeAsync(page); await OnPageChanged.InvokeAsync(page); }
public void GoToPage(int pageIndex) { if (IsIndexValid(pageIndex)) { var e = new WizardPageChangedEventArgs(); if (IsIndexValid(_currentIndex)) { e.OldPage = Pages[_currentIndex]; } e.NewPage = Pages[pageIndex]; if (CurrentPage == null || NotifyPageDeactivate(_currentIndex - pageIndex > 0)) { var selPage = SelectedPage; if (selPage != null) { selPage.IsPageSelected = false; } _currentIndex = pageIndex; Pages[_currentIndex].IsPageSelected = true; if (NotifyPageActivate()) { CurrentPageChanged?.Invoke(this, e); } } } }
/// <summary> /// 切换当前页 /// </summary> /// <param name="page">页码</param> private void ChangePage(int page) { _Handle = _PageSize * page; Refresh(); CurrentPageChanged?.Invoke(this, new PageControlEventArgs(FocusedRowHandle)); }
void kbtnFirst_Click(object sender, EventArgs e) { CurrentPage = 0; if (!ReferenceEquals(CurrentPageChanged, null)) { CurrentPageChanged.Invoke(sender, e); } }
/// <summary> /// Navigates to the given page /// </summary> /// <param name="page">The page that we want to navigate to</param> public void ChangeCurrentPage(PageBase page) { OverlaySettings.Reset(); page.Router = this; page.OverlaySettings = OverlaySettings; CurrentPage = page; container.Content = page; page.OnAttachedToFrame(); CurrentPageChanged?.Invoke(); }
protected override void OnParametersSet() { pageCount = Convert.ToInt32(Math.Ceiling((float)Total / PageSize)); if (CurrentPage > pageCount) { CurrentPage = pageCount; CurrentPageChanged?.Invoke(pageCount); } SwitchButtonStatus(); }
internal async Task CurrentPageChangedAsync(int page) { currentPage = page; if (CurrentPageChanged.HasDelegate) { RequireRender = true; LoadingService.Show(); await CurrentPageChanged.InvokeAsync(page); LoadingService.CloseFullScreenLoading(); } }
/// <summary> /// Sets the current page to the specified index asynchronously. /// </summary> /// <param name="page">The index of the page to set.</param> /// <returns>A task for this function.</returns> protected virtual async Task SetCurrentPage(int page) { if (page < 1 || page > MaxPage) { return; } if (page != CurrentPage) { CurrentPage = page; await CurrentPageChanged.InvokeAsync(CurrentPage); } }
void kbtnLast_Click(object sender, EventArgs e) { CurrentPage = PageCount - 1; if (CurrentPage < 0) { CurrentPage = 0; } if (!ReferenceEquals(CurrentPageChanged, null)) { CurrentPageChanged.Invoke(sender, e); } }
protected override async Task OnInitializedAsync() { P_DokusyaList = await NewsPaperData.GetDokusya_K95080_ListAsync(); P_KoudokuList = await NewsPaperData.GetKoudoku_K95080_ListAsync(); P_KuikiList = await NewsPaperData.GetKuiki_K95080_ListAsync(); P_KakuzaiList = await NewsPaperData.GetKakuzai_K95080_ListAsync(); CurrentPage.LoadingState = true; await CurrentPageChanged.InvokeAsync(CurrentPage); }
/// <summary>Selects one of the already open documents (in multiple document mode)</summary> public void SelectDocument(int index) { if (index < 0 || index >= m_Documents.Count) { Utilities.LogSubError("AM.SelectDocument - index out of bounds"); return; } SetCurrentDocument(m_Documents[index]); m_DocumentIndex = index; Globals.OnSettingsChanged(); CurrentDocumentChanged?.Invoke(); CurrentPageChanged?.Invoke(); }
public void AddNewDocument(Document document) { // adds a document to list and makes it the current one Debug.Assert(Globals.Root.CurrentConfig.ReadBoolean(Config.Multiple_Documents)); if (m_CurrentDocument != null) { m_CurrentDocument.CurrentPage = CurrentPageIndex; // remember current page in current doc } m_Documents.Add(document); SetCurrentDocument(document); m_DocumentIndex = Globals.Root.m_Documents.Count - 1; Globals.OnSettingsChanged(); CurrentDocumentChanged?.Invoke(); CurrentPageChanged?.Invoke(); }
public async Task SelectedPageLinkAsync(PageLink pageLink) { if (pageLink.Page == CurrentPage) { return; } if (!pageLink.Enabled) { return; } CurrentPage = pageLink.Page; await CurrentPageChanged.Invoke(CurrentPage); }
protected internal virtual IWizardPage SetCurrentPage(int newIndex) { Log.Debug("Setting current page index to '{0}'", newIndex); var currentPage = _currentPage; if (currentPage is not null) { currentPage.ViewModelChanged -= OnPageViewModelChanged; var vm = currentPage.ViewModel; if (vm is not null) { vm.PropertyChanged -= OnPageViewModelPropertyChanged; } } var newPage = _pages[newIndex]; if (newPage is not null) { newPage.ViewModelChanged += OnPageViewModelChanged; var vm = newPage.ViewModel; if (vm is not null) { vm.PropertyChanged += OnPageViewModelPropertyChanged; } } _currentPage = newPage; _currentIndex = newIndex; RaisePropertyChanged(nameof(CurrentPage)); CurrentPageChanged?.Invoke(this, EventArgs.Empty); NavigationController.EvaluateNavigationCommands(); if (newPage is not null) { newPage.IsVisited = true; } return(newPage); }
void kbtnPrevious_Click(object sender, EventArgs e) { if (CurrentPage == PageCount) { CurrentPage = PageCount - 1; } CurrentPage--; if (CurrentPage < 0) { CurrentPage = 0; } if (!ReferenceEquals(CurrentPageChanged, null)) { CurrentPageChanged.Invoke(sender, e); } }
/// <summary> /// 增加列表成员 /// </summary> /// <param name="count">增加数量,默认1个</param> public void AddItems(int count = 1) { _Rows += count; _Handle = _Rows - 1; var page = _Current; Refresh(); if (_Current > page) { // 切换了页码需要重新加载数据 CurrentPageChanged?.Invoke(this, new PageControlEventArgs(FocusedRowHandle)); } else { TotalRowsChanged?.Invoke(this, new PageControlEventArgs(FocusedRowHandle)); } }
internal async Task CurrentPageChangedAsync(int page) { CurrentPage = page; if (CurrentPageChanged.HasDelegate) { RequireRender = true; var option = new LoadingOption() { Background = LoadingBackground, Target = Container, IconClass = LoadingIconClass, Text = LoadingText }; LoadingService.LoadingOptions.Add(option); SelectedRows.Clear(); await CurrentPageChanged.InvokeAsync(page); LoadingService.LoadingOptions.Remove(option); } }
/// <summary> /// 切换每页行数 /// </summary> private void PageRowsChanged() { var handel = FocusedRowHandle; var change = _PageSize < _Rows - _PageSize * _Current; _PageSize = int.Parse(cbeRows.Text); PageSizeChanged?.Invoke(this, new PageSizeEventArgs(_PageSize)); var page = _Current; Refresh(); change = change || _PageSize < _Rows - _PageSize * _Current; if (!change && _Current == page && FocusedRowHandle == handel) { return; } // 切换了页码或当前页显示行数变化后需要重新加载数据 CurrentPageChanged?.Invoke(this, new PageControlEventArgs(FocusedRowHandle)); }
private void EditCell(ProductInformation product) { for (var pageNode = pages.First; pageNode != null; pageNode = pageNode.Next) { for (LinkedListNode <ProductCell> cellNode = pageNode.Value.First; cellNode != null; cellNode = cellNode.Next) { if (cellNode.Value.ReferenceEquals(product)) { // Удаляем и вставляем ячейку только в том случае, если её позиция должна измениться. if ((cellNode.Previous != null && cellNode.Previous.Value.Product.PositionNumber > product.PositionNumber) || (cellNode.Previous == null && pageNode.Previous != null && pageNode.Previous.Value.Last.Value.Product.PositionNumber > product.PositionNumber) || (cellNode.Next != null && cellNode.Next.Value.Product.PositionNumber < product.PositionNumber) || (cellNode.Next == null && pageNode.Next != null && pageNode.Next.Value.Last.Value.Product.PositionNumber < product.PositionNumber)) { DeleteCell(product); AddCell(product); } CurrentPageChanged?.Invoke(); } } } }
/// <summary> /// 减少列表成员 /// </summary> /// <param name="count">减少数量,默认1个</param> public void RemoveItems(int count = 1) { _Rows -= count; if (_Handle >= _Rows) { _Handle = _Rows - 1; } var page = _Current; Refresh(); if ((_Rows > 0 && _Handle < _PageSize * (_TotalPages - 1)) || _Current < page) { // 不是末页或切换了页码需要重新加载数据 CurrentPageChanged?.Invoke(this, new PageControlEventArgs(FocusedRowHandle)); } else { TotalRowsChanged?.Invoke(this, new PageControlEventArgs(FocusedRowHandle)); } }
protected virtual void OnCurrentPageChanged(EventArgs e) { CurrentPageChanged?.Invoke(this, e); }
public void TriggerCurrentPageChange(int value) { CurrentPageChanged?.Invoke(value); }
private void RaiseCurrentPageChanged() { CurrentPageChanged?.Invoke(); }
protected override void OnCurrentPageChanged() { base.OnCurrentPageChanged(); CurrentPageChanged?.Invoke(this, EventArgs.Empty); }
private void DeleteCell(ProductInformation product) { Page pageWithDeletableCell = null; Cell deletableCell = null; bool found = false; // Ищем удаляемый товар for (Page pageNode = pages.First; pageNode != null; pageNode = pageNode.Next) { for (Cell cellNode = pageNode.Value.First; cellNode != null; cellNode = cellNode.Next) { // Смещаем все последующие товары на GetPreviousYPos(от текущей позиции) if (found) { int currentYPos = cellNode.Value.Cell.Location.Y; cellNode.Value.SetNewGroupYPosition(GetPreviousYPos(currentYPos)); } if (!found && cellNode.Value.ReferenceEquals(product)) { // Если просто удалить товар, тогда не получится сместить последующие товары pageWithDeletableCell = pageNode; deletableCell = cellNode; found = true; } } // Если есть ещё страница и был удален товар, тогда переносим первый товар со следующей страницы // на текущую if (found && pageNode.Next != null) { int lastProductYPos = pageNode.Value.Last.Value.Cell.Location.Y; // Добавляем первый товар со следующей страницы на текущую страницу pageNode.Value.AddLast(pageNode.Next.Value.First.Value); // Устанавливаем перенесенной ячейке новое y-значение pageNode.Value.Last.Value.SetNewGroupYPosition(GetNextYPos(lastProductYPos)); // Делаем эту ячейку невидимой pageNode.Value.Last.Value.Cell.Visible = false; // Удаляем переносимую ячейку со следующей страницы productsPanel.Controls.Remove(pageNode.Next.Value.First.Value.Cell); pageNode.Next.Value.Remove(pageNode.Next.Value.First); // Если страница на которую сделан перенос - текущая страница, // то делаем перенесенный товар видимым if (pageNode == currentPage) { pageNode.Value.Last.Value.Cell.Visible = true; productsPanel.Controls.Add(pageNode.Value.Last.Value.Cell); } } } if (pageWithDeletableCell != null && deletableCell != null) { deletableCell.Value.Cell.Visible = false; productsPanel.Controls.Remove(deletableCell.Value.Cell); pageWithDeletableCell.Value.Remove(deletableCell); // Если после удаления ячейки товара на последней странице не осталось товаров, то удаляем её if (pages.Last.Value.Count == 0) { // Если удаляемая страница - это текущая страница, тогда пытаемся перейти на предыдущую if (pages.Last == currentPage && currentPage.Previous != null) { ToPreviousPage(); pages.Remove(pages.Last); } // Если это текущая страница и она единственная, то удаляем и присваиваем текущей странице // значение null else if (pages.Last == currentPage) { pages.Remove(pages.Last); currentPage = null; } // Иначе просто удаляем else { pages.Remove(pages.Last); } } CurrentPageChanged?.Invoke(); } }