protected IList<TreeViewItem> BuildRows (IMGUI.Controls.TreeViewItem root);

Parameters

rootBuildRoot 方法中创建的根项。

Returns

IList<TreeViewItem> TreeView 中显示的行列表。稍后可使用 GetRows() 进行访问。

Description

重载此方法可控制行的生成方式。

当调用 Reload 以及每次展开或折叠项时,将调用此方法。BuildRow 的默认实现负责根据完整树和项的展开状态来缓存展开的行。

对于大型数据集或经常变化的数据,它仅适用于创建 TreeView 的行而非完整树。在这种情况下,可重载此方法以手动构建行。如果遇到折叠的父项,则可忽略该父项的后代(因为它们不可见)。使用 CreateChildListForCollapsedParent() 方法设置该项的子项。

When using this approach then 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.

手动构建行时,请记得使用 TreeView 的搜索字符串来筛选项。

另请参阅:BuildRootSetupParentsAndChildrenFromDepthsSetupDepthsFromParentsAndChildrenTreeViewItem