Tabs view
A strip of captions over pages that come from a collection.
The strip is sorted on ITabItemModel.Order, so the collection's own order never changes for a drag to stick.
new TabsViewComponent("tabs-view")
Properties
| Property | Type | Default | Binding | Description |
|---|---|---|---|---|
| Own | ||||
SelectedKeySetSelectedKey · BindSelectedKey | string | null | two-way | The key of the tab currently shown. Two-way, as on TabsComponent. |
RenamableSetRenamable · BindRenamable | bool? | false | one-way | Whether a caption can be renamed in place: a double click, F2, or a RenameTabEffect from a menu. |
DraggableSetDraggable · BindDraggable | bool? | false | one-way | Whether tabs can be reordered by dragging their captions; a tab whose item says CanDrag false stays put. |
RemovableSetRemovable · BindRemovable | bool? | true | one-way | Whether tabs can be closed at all; off, no caption shows a close and the strip keeps no room for one. A single tab refuses its close with the item's CanRemove. |
ShowOverflowSetShowOverflow · BindShowOverflow | bool? | true | one-way | Whether the captions past the strip's room go behind a "…" list; off, the strip wraps them onto the next line. |
SelectionStyleSetSelectionStyle · BindSelectionStyle | UISelectionStyle? | null | one-way | What a chosen item looks like. Unset, and every unset part of it, is the control's own default. |
| From ItemsComponentBase | ||||
ItemsSetItems · BindItems | IReadOnlyList<ITabItemModel> | null | one-way | The component items. |
ItemsViewBindItemsView | UIItemsView | null | one-way | Filtering and sorting rules applied to the items collection. |
QuerySetQuery · BindQuery | UIItemsQuery | null | two-way | The terms the viewer set after the view compiled — a header's sort, a filter row — applied beside the authored rules; bound both ways, so a windowed source is asked with them and a controller can set them. |
| From TemplatedComponentBase | ||||
TemplateKeyPropertySetTemplateKeyProperty · BindTemplateKeyProperty | string | null | one-way, relative scope | The name of the item field whose value selects a named template variant. |
FallbackTemplateKeySetFallbackTemplateKey | string | null | — | The fallback template key used when ITemplatedComponent.TemplateKeyProperty does not resolve to a template. |
Events
OnItemRemove(string command, string argumentName = "id")- Registers a command invoked when a tab's close is pressed, passing the tab's key; the controller removes the tab or leaves it.
OnItemRemove(string command, params KeyValuePair<string, UIActionArgument>[] arguments)- Registers a command invoked when a tab's close is pressed, with UI action arguments.
OnItemRename(string command, string argumentName = "id")- Registers a command invoked when a caption is renamed in place, passing the tab's key.
Optional: a two-way caption already writes the new text back; this is for refusing or normalizing it. OnItemRename(string command, params KeyValuePair<string, UIActionArgument>[] arguments)- Registers a command invoked when a caption is renamed in place, with UI action arguments.
Methods
SetPageTemplate(IVisualComponent page)- Sets the page rendered for every tab, leaving the built-in caption in place.
SetTemplate(ITabItemComponent visualTemplate)- Sets the item template.
AddTemplateVariant(string key, ITabItemComponent visualTemplate)- Adds or replaces a named template variant.
AddItem(ITabItemModel item)- Adds an item to the component.
AddItems(IEnumerable<ITabItemModel> items)- Adds items to the component.
FilterBy(UIProperty source, string itemProperty, UIComparisonOperator operator = UIComparisonOperator.LikeIgnoreCase, UIComparisonOperator activeOperator = UIComparisonOperator.Required, object activeValue = null)- Adds a filter controlled by a local component property.
Defaults to a case-insensitive substring match; pass the operator explicitly where case matters. FilterBy(string sourceComponentId, UIProperty source, string itemProperty, UIComparisonOperator operator = UIComparisonOperator.LikeIgnoreCase, UIComparisonOperator activeOperator = UIComparisonOperator.Required, object activeValue = null)- Adds a filter controlled by another component property.
FilterBy(UIPropertyReference source, string itemProperty, UIComparisonOperator operator = UIComparisonOperator.LikeIgnoreCase, UIComparisonOperator activeOperator = UIComparisonOperator.Required, object activeValue = null)- Adds a filter controlled by a property reference.
FilterBy(string itemProperty, UIComparisonOperator operator = UIComparisonOperator.LikeIgnoreCase, object value = null)- Adds an unconditionally active filter with no source, comparing against a constant value.
SortBy(UIProperty source, string itemProperty, UIItemsSortDirection direction = UIItemsSortDirection.Ascending, UIComparisonOperator activeOperator = UIComparisonOperator.Equal, object activeValue = null, int priority = 0)- Adds a sort rule controlled by a local component property.
SortBy(string sourceComponentId, UIProperty source, string itemProperty, UIItemsSortDirection direction = UIItemsSortDirection.Ascending, UIComparisonOperator activeOperator = UIComparisonOperator.Equal, object activeValue = null, int priority = 0)- Adds a sort rule controlled by another component property.
SortBy(UIPropertyReference source, string itemProperty, UIItemsSortDirection direction = UIItemsSortDirection.Ascending, UIComparisonOperator activeOperator = UIComparisonOperator.Equal, object activeValue = null, int priority = 0)- Adds a sort rule controlled by a property reference.
SortBy(string itemProperty, UIItemsSortDirection direction = UIItemsSortDirection.Ascending, int priority = 0)- Adds an unconditionally active sort rule with no source.
SetEmptyTemplate(IVisualComponent visualTemplate)- Sets the template used when there are no items or no content.
Common properties (16) — layout, visibility, theme, and the rest every component shares
| Property | Type | Default | Binding | Description |
|---|---|---|---|---|
VisibilitySetVisibility · BindVisibility | UIResponsive<UIVisibility>? | Visible | one-way | What the component does with the room it was given, optionally overridden per breakpoint (e.g. collapsed from a given width up). |
EnabledSetEnabled · BindEnabled | bool? | true | one-way | Whether the component responds to input; false dims it and marks it, and its subtree, inert. |
ThemeSetTheme · BindTheme | UIThemeMode? | null | one-way | The theme mode forced on this component's subtree, or null to inherit the ambient theme. |
HorizontalAlignmentSetHorizontalAlignment · BindHorizontalAlignment | UIAlignment? | UIAlignment.Stretch | one-way | Where the component sits within its grid cell along the horizontal axis. |
VerticalAlignmentSetVerticalAlignment · BindVerticalAlignment | UIAlignment? | UIAlignment.Stretch | one-way | Where the component sits within its grid cell along the vertical axis. |
WidthSetWidth · BindWidth | UIResponsive<UILayoutLength>? | null | one-way | The component width, optionally overridden per breakpoint. |
MinWidthSetMinWidth · BindMinWidth | UIResponsive<UILayoutLength>? | null | one-way | The component minimum width, optionally overridden per breakpoint. |
MaxWidthSetMaxWidth · BindMaxWidth | UIResponsive<UILayoutLength>? | null | one-way | The component maximum width, optionally overridden per breakpoint. |
HeightSetHeight · BindHeight | UIResponsive<UILayoutLength>? | null | one-way | The component height, optionally overridden per breakpoint. |
MinHeightSetMinHeight · BindMinHeight | UIResponsive<UILayoutLength>? | null | one-way | The component minimum height, optionally overridden per breakpoint. |
MaxHeightSetMaxHeight · BindMaxHeight | UIResponsive<UILayoutLength>? | null | one-way | The component maximum height, optionally overridden per breakpoint. |
ZIndexSetZIndex · BindZIndex | int? | 0 | one-way | The stacking order within the visual tree. |
MarginSetMargin · BindMargin | UIResponsive<UIThickness>? | null | one-way | The outer spacing around the component, optionally overridden per breakpoint. |
PlacementSetPlacement · BindPlacement | UIResponsive<UIGridPlacement>? | null | one-way | The grid placement, optionally overridden per breakpoint. |
LoadingSetLoading · BindLoading | bool? | false | one-way | Whether the component is in loading state — a live state a controller turns on and off. |
ShowContextMenuSetShowContextMenu · BindShowContextMenu | bool? | true | one-way | Whether a right-click opens the IVisualComponent.ContextMenu; on a host with rows, whether it opens any row's. Off, the menu stays in the tree and nothing opens it. |