@code { [CascadingParameter] public TabControl Parent { get; set; } [Parameter] public RenderFragment ChildContent { get; set; } [Parameter] public Action OnActivated { get; set; } [Parameter] public string Name { get; set; } private string ActiveClass => Parent.ActiveTab == Name ? "active" : ""; protected override void OnInitialized() { if (Parent is null) { throw new Exception("TabHeader must be contained in a TabControl."); } base.OnInitialized(); } private void SetActiveTab() { Parent.SetActiveTab(this); StateHasChanged(); OnActivated?.Invoke(); } }