public async Task SetActivateTabAsync(ITab tab) { if (OnActiveTabChangingAsync != null) { var allowSwitching = await OnActiveTabChangingAsync(tab); if (!allowSwitching) { return; } } if (ActiveTab != null && ActiveTab.Name == tab.Name) { return; } ActiveTabName = tab.Name; var eventArgs = new BChangeEventArgs <ITab>(); eventArgs.OldValue = ActiveTab; eventArgs.NewValue = tab; ActiveTab = tab; StateHasChanged(); if (OnActiveTabChanged.HasDelegate) { await OnActiveTabChanged.InvokeAsync(eventArgs); } }
/// <summary> /// Sets tab to active. /// </summary> /// <param name="tab"></param> public async Task SetActiveAsync(XTab tab) { Active = tab; if (OnActiveTabChanged.HasDelegate) { await OnActiveTabChanged.InvokeAsync(tab); } await NotifyStateHasChangedAsync(); }
internal async Task <bool> SetActivateTabAsync(BTabPanelBase tab) { if (OnActiveTabChanging.HasDelegate) { var arg = new BChangeEventArgs <BTabPanelBase>(); arg.NewValue = tab; arg.OldValue = ActiveTab; await OnActiveTabChanging.InvokeAsync(arg); if (arg.DisallowChange) { return(false); } } if (DataSource == null) { foreach (var tabPanel in tabPanels) { if (tabPanel == tab) { tabPanel.Activate(); continue; } tabPanel.DeActivate(); } } else { foreach (var item in DataSource) { item.IsActive = item.Name == tab.Name; } } ActiveTab = tab; var eventArgs = new BChangeEventArgs <BTabPanelBase>(); eventArgs.OldValue = ActiveTab; eventArgs.NewValue = tab; RequireRender = true; if (OnActiveTabChanged.HasDelegate) { await OnActiveTabChanged.InvokeAsync(eventArgs); } else { StateHasChanged(); } return(true); }
public static void ActiveTabChanged(PanelTab tab) { OnActiveTabChanged?.Invoke(tab); }