Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


BuildRows(TreeViewItem)

Override this method to take control of how the rows are generated.
Read time 2 minutesLast updated 6 days ago

Definition

Warning
Removed. TreeView is now deprecated. You can likely now use TreeView\<int\> instead and not think more about it. But if you were using that identifier to store InstanceID data, you should instead opt to upgrade your TreeViews to use TreeView\<InstanceID\> to get the proper typing.
protected virtual IList<TreeViewItem> BuildRows(TreeViewItem root)

Parameters

Root item that was created in the BuildRoot method.

Returns

Type

Description

IList<TreeViewItem>The rows list shown in the TreeView. Can later be accessed using GetRows().

Remarks

This method is called when Reload is called and every time items are expanded or collapsed. The default implementation of BuildRows takes care of caching the expanded rows based on the full tree and the expanded state of items.
For very large data-sets or for data that change often it can be desirable to only create the rows of the TreeView and not the full tree. In this situation override this method to build the rows manually. If a collapsed parent is encountered then the descendants of that parent can be omitted (since they are not visible). Set the children of that item using the CreateChildListForCollapsedParent() method.
When using this approach then TreeView.BuildRoot should just create the root TreeViewItem (and not the full tree). You will need to add your own delegate to getNewSelectionOverride in order to handle selection changes. Also ensure to override GetAncestors() and GetDescendantsThatHaveChildren() and use the model data to fetch this information, otherwise framing and expanding sub-trees will fail.
When building the rows manually remember to use the search string of the TreeView to filter items.