版本: Unity 6 (6000.0)
语言English
  • C#

TreeView.BuildRows

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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

参数

root 在 BuildRoot 方法中创建的根项。

返回值

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

描述

重写此方法以控制行的生成方式。

调用 Reload 时以及每次展开或折叠项时都会调用此方法。BuildRows 的默认实现会根据完整树和项的展开状态缓存展开的行。

对于非常大的数据集或经常更改的数据,可能希望只创建 TreeView 的行,而不是创建完整的树。在这种情况下,重写此方法以手动构建行。如果遇到折叠的父级,则可以省略该父级的后代(因为它们不可见)。使用 CreateChildListForCollapsedParent() 方法设置该项的子项。

使用此方法时,BuildRoot 应该只创建根 TreeViewItem(而不是完整的树)。您需要将自己的委托添加到 getNewSelectionOverride 以处理选择更改。此外,请确保重写 GetAncestors() 和 GetDescendantsThatHaveChildren() 并使用模型数据获取此信息,否则框架和扩展子树将失败。

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

其他资源:BuildRootSetupParentsAndChildrenFromDepthsSetupDepthsFromParentsAndChildrenTreeViewItem