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

参数

root BuildRoot 方法中创建的根项。

返回

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

描述

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

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

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

使用此方法时,BuildRoot 应仅创建根 TreeViewItem(而非完整树)。您需要将自己的委托添加到 getNewSelectionOverride 以处理选择更改。还务必覆盖 GetAncestors() 和 GetDescendantsThatHaveChildren(),并使用模型数据来获取此信息,否则子树的搭建和展开将失败。

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

另请参阅:BuildRootSetupParentsAndChildrenFromDepthsSetupDepthsFromParentsAndChildrenTreeViewItem