NE.Standard

Tree

A tree on the file list's model, over a flat keyed list of nodes in walking order.

TreeComponent · type key standard.tree · Items · property blocks: IBorderedComponent, ISurfaceStyleComponent, IScrollableComponent, ISelectableItemsComponent, ISelectionStyleComponent, IRowHoverableComponent

new TreeComponent("tree")

Properties

PropertyTypeDefaultBindingDescription
Own
BorderThickness
SetBorderThickness · BindBorderThickness
UIThickness?0one-wayThe border thickness; a tree is a list in a panel and draws no edge of its own by default.
Indent
SetIndent · BindIndent
double?16one-wayHow far each level steps in from the one above, in pixels.
Renamable
SetRenamable · BindRenamable
bool?falseone-wayWhether a node's title can be renamed in place: F2, or a RenameNodeEffect from a menu.
RenameOnDoubleClick
SetRenameOnDoubleClick · BindRenameOnDoubleClick
bool?falseone-wayWhether a double click renames the node rather than opening it; Enter opens either way.
Draggable
SetDraggable · BindDraggable
bool?falseone-wayWhether a node can be dragged onto another: the drop writes the node's DropTarget and raises move, and the controller moves the node or leaves it — nothing moves on the client.
Removable
SetRemovable · BindRemovable
bool?trueone-wayWhether the Delete key raises remove on the keyboard's node at all; a single node refuses it with the item's CanRemove.
ShowFoldChevron
SetShowFoldChevron · BindShowFoldChevron
bool?trueone-wayWhether a node that can unfold draws its chevron; off, the rows keep no square for one and fold from the keyboard or from a click on a node that refuses the choice.
RowHoverable
SetRowHoverable · BindRowHoverable
bool?trueone-wayWhether rows highlight under the pointer — on by default, as a file list's are.
BorderColor
SetBorderColor · BindBorderColor
UIThemeColor?nullone-wayThe border's colour, written as CSS border-color; unset leaves the stylesheet's own.
BorderRadius
SetBorderRadius · BindBorderRadius
UICornerRadius?nullone-wayThe corner rounding, written as CSS border-radius; unset leaves the stylesheet's own.
Surface
SetSurface · BindSurface
UISurfaceStyle?UISurfaceStyle.Backgroundone-wayWhat the component is made of.
HorizontalScroll
SetHorizontalScroll · BindHorizontalScroll
UIScrollMode?UIScrollMode.Disabledone-wayWhether the viewport scrolls horizontally — Disabled, Auto, or Always; default Disabled.
VerticalScroll
SetVerticalScroll · BindVerticalScroll
UIScrollMode?UIScrollMode.Autoone-wayWhether the viewport scrolls vertically — Disabled, Auto, or Always; default Auto.
ScrollSnap
SetScrollSnap · BindScrollSnap
UIScrollSnapMode?UIScrollSnapMode.Disabledone-wayWhether a scroll comes to rest on a child's edge rather than wherever it was let go.
ScrollAnchor
SetScrollAnchor · BindScrollAnchor
UIScrollAnchor?UIScrollAnchor.Noneone-wayHow the viewport reacts when its content grows, applying to the component's own scrolling element so it also works for a windowed host that a wrapping ScrollContainer could not reach.
SelectionMode
SetSelectionMode · BindSelectionMode
UISelectionMode?UISelectionMode.Noneone-wayHow many rows may be chosen at once.
SelectedKey
SetSelectedKey · BindSelectedKey
stringnulltwo-wayThe key of the chosen row under UISelectionMode.One.
SelectedKeys
SetSelectedKeys · BindSelectedKeys
IReadOnlyList<string>nulltwo-wayThe keys of the chosen rows under UISelectionMode.Many, in the order they were chosen.
SelectionStyle
SetSelectionStyle · BindSelectionStyle
UISelectionStyle?nullone-wayWhat a chosen item looks like. Unset, and every unset part of it, is the control's own default.
From ItemsComponentBase
Items
SetItems · BindItems
IReadOnlyList<ITreeNodeModel>nullone-wayThe component items.
ItemsView
BindItemsView
UIItemsViewnullone-wayFiltering and sorting rules applied to the items collection.
Query
SetQuery · BindQuery
UIItemsQuerynulltwo-wayThe 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
TemplateKeyProperty
SetTemplateKeyProperty · BindTemplateKeyProperty
stringnullone-way, relative scopeThe name of the item field whose value selects a named template variant.
FallbackTemplateKey
SetFallbackTemplateKey
stringnullThe fallback template key used when ITemplatedComponent.TemplateKeyProperty does not resolve to a template.

Events

OnNodeOpenWithItemKey(string command, string argumentName = "id")
Registers the command a double click or Enter on a node runs, with the node's key as an argument.
OnNodeOpen(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers the command a double click or Enter on a node runs.
OnNodeUnfoldWithItemKey(string command, string argumentName = "id")
Registers the command run when a node that says it has children is unfolded before any are in the list, with the node's key as an argument: the controller adds the children under it, or clears HasChildren.
OnNodeUnfold(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers the command run when a node that says it has children is unfolded before any are in the list.
OnNodeRenameWithItemKey(string command, string argumentName = "id")
Registers the command run after a rename wrote the node's RenamedTitle back, with the node's key as an argument.
Optional: the two-way title already carries the new text; this is for refusing or normalizing it.
OnNodeRename(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers the command run after a rename wrote the node's RenamedTitle back.
OnNodeMoveWithItemKey(string command, string argumentName = "id")
Registers the command run after a drag wrote the node's DropTarget, with the dragged node's key as an argument; the controller moves the node under the target, or refuses by doing nothing.
OnNodeMove(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers the command run after a drag wrote the node's DropTarget.
OnNodeRemoveWithItemKey(string command, string argumentName = "id")
Registers the command the Delete key runs on the node the keyboard is on, with the node's key as an argument; a node whose CanRemove is false raises nothing.
OnNodeRemove(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers the command the Delete key runs on the node the keyboard is on.
OnRowClickWithItem(string command, string argumentName = "item")
Registers a row click command that passes the current item as an argument.
OnRowClickWithItemKey(string command, string argumentName = "id")
Registers a row click command that passes the current item's key as an argument.
OnRowClick(string command)
Registers a click command invoked when a row is clicked.
OnRowClick(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers a click command invoked when a row is clicked, with UI action arguments.
OnRowClickLiteral(string command, params KeyValuePair<string, object>[] arguments)
Registers a click command invoked when a row is clicked, with literal argument values.
OnRowOpenWithItemKey(string command, string argumentName = "id")
Registers a command invoked when a row is opened — Enter on the keyboard's row, or a double click — with the row's key.
OnRowOpen(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers a command invoked when a row is opened — Enter on the keyboard's row, or a double click.
OnRowRemoveWithItemKey(string command, string argumentName = "id")
Registers a command invoked when the Delete key is pressed on a row that may be removed, with the row's key; the controller removes the row or leaves it.
OnRowRemove(string command, params KeyValuePair<string, UIActionArgument>[] arguments)
Registers a command invoked when the Delete key is pressed on a row that may be removed.

Methods

ConfigureDefaultNode(Action<TreeNodeComponent> configure)
Configures the built-in node template — its glyph, its colours, the menu every node without a kind of its own opens.
SetNodeTemplate(TreeNodeComponent template)
Sets the node template a node is drawn with when no variant matches its kind.
AddNodeKind(string kind, TreeNodeComponent template)
Adds the node template the nodes of kind are drawn with — a folder's face and menu beside a file's.
AddNodeKind(string kind, Action<TreeNodeComponent> configure)
Adds a bound node template for kind and lets configure shape it.
SetRowTemplate(DefaultRowTemplate template)
Sets the row template.
AddItem(ITreeNodeModel item)
Adds an item to the component.
AddItems(IEnumerable<ITreeNodeModel> 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
PropertyTypeDefaultBindingDescription
Visibility
SetVisibility · BindVisibility
UIResponsive<UIVisibility>?Visibleone-wayWhat the component does with the room it was given, optionally overridden per breakpoint (e.g. collapsed from a given width up).
Enabled
SetEnabled · BindEnabled
bool?trueone-wayWhether the component responds to input; false dims it and marks it, and its subtree, inert.
Theme
SetTheme · BindTheme
UIThemeMode?nullone-wayThe theme mode forced on this component's subtree, or null to inherit the ambient theme.
HorizontalAlignment
SetHorizontalAlignment · BindHorizontalAlignment
UIAlignment?UIAlignment.Stretchone-wayWhere the component sits within its grid cell along the horizontal axis.
VerticalAlignment
SetVerticalAlignment · BindVerticalAlignment
UIAlignment?UIAlignment.Stretchone-wayWhere the component sits within its grid cell along the vertical axis.
Width
SetWidth · BindWidth
UIResponsive<UILayoutLength>?nullone-wayThe component width, optionally overridden per breakpoint.
MinWidth
SetMinWidth · BindMinWidth
UIResponsive<UILayoutLength>?nullone-wayThe component minimum width, optionally overridden per breakpoint.
MaxWidth
SetMaxWidth · BindMaxWidth
UIResponsive<UILayoutLength>?nullone-wayThe component maximum width, optionally overridden per breakpoint.
Height
SetHeight · BindHeight
UIResponsive<UILayoutLength>?nullone-wayThe component height, optionally overridden per breakpoint.
MinHeight
SetMinHeight · BindMinHeight
UIResponsive<UILayoutLength>?nullone-wayThe component minimum height, optionally overridden per breakpoint.
MaxHeight
SetMaxHeight · BindMaxHeight
UIResponsive<UILayoutLength>?nullone-wayThe component maximum height, optionally overridden per breakpoint.
ZIndex
SetZIndex · BindZIndex
int?0one-wayThe stacking order within the visual tree.
Margin
SetMargin · BindMargin
UIResponsive<UIThickness>?nullone-wayThe outer spacing around the component, optionally overridden per breakpoint.
Placement
SetPlacement · BindPlacement
UIResponsive<UIGridPlacement>?nullone-wayThe grid placement, optionally overridden per breakpoint.
Loading
SetLoading · BindLoading
bool?falseone-wayWhether the component is in loading state — a live state a controller turns on and off.
ShowContextMenu
SetShowContextMenu · BindShowContextMenu
bool?trueone-wayWhether 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.