root | 在 BuildRoot 方法中创建的根项。 |
IList<TreeViewItem> TreeView 中显示的行列表。稍后可以使用 GetRows() 访问。
重写此方法以控制行的生成方式。
调用 Reload 时以及每次展开或折叠项时都会调用此方法。BuildRows 的默认实现会根据完整树和项的展开状态缓存展开的行。
对于非常大的数据集或经常更改的数据,可能希望只创建 TreeView 的行,而不是创建完整的树。在这种情况下,重写此方法以手动构建行。如果遇到折叠的父级,则可以省略该父级的后代(因为它们不可见)。使用 CreateChildListForCollapsedParent() 方法设置该项的子项。
使用此方法时,BuildRoot 应该只创建根 TreeViewItem(而不是完整的树)。您需要将自己的委托添加到 getNewSelectionOverride 以处理选择更改。此外,请确保重写 GetAncestors() 和 GetDescendantsThatHaveChildren() 并使用模型数据获取此信息,否则框架和扩展子树将失败。
手动构建行时,请记住使用 TreeView 的搜索字符串筛选项目。
其他资源:BuildRoot、SetupParentsAndChildrenFromDepths、SetupDepthsFromParentsAndChildren、TreeViewItem。