XtraTreeList 允许以树状结构显示信息。 在这种模式中,以树状视图呈现数据。 如果准备呈现由任何层级组成的数据,那么这是很有用的。 如果树状列表控件的数据是从数据源中获得,则数据必须符合某些要求。 构建树状结构需要两个附加的字段。 第一个字段必须包含唯一值,并且必须被指派到 TreeList.KeyFieldName 属性。 第二个字段包含指明当前节点的父节点的取值,并且必须被指派到 TreeList.ParentFieldName 属性。
下面是这种数据源的一个示例。 在 ID 列中存储了键字段值,而在 PARENTID 列中存储了父键字段值:
此插图展示了记录之间的父子关系。 这里,“Corporate Headquarters”表示一个被显示在 TreeList 控件中的根节点层级的节点。 其他记录作为此节点和其他节点的子节点。
根结点没有父节点。 但是对于所有表示根节点的数据源记录,父键字段值必须被设置为某个唯一值。 此取值必须被指派到 TreeList.RootValue 属性。 在本示例中,“Corporate Headquarters”记录的 PARENTID 字段值被设置为 0。 该取值也被指派到了 TreeList.RootValue 属性。
把上面插图中显示的数据源绑定到 TreeList 控件,把 TreeList.KeyFieldName 属性设置为 "ID",并把 TreeList.ParentFieldName 属性设置为 "PARENTID",结果如下:
已指派到 TreeList.KeyFieldName 和 TreeList.ParentFieldName 属性的字段被推定为服务字段。 当 TreeList 控件被绑定到数据源时,在默认情况下不创建与服务字段对应的树状列表的列。 要创建这些列,则启用 TreeListOptionsBehavior.PopulateServiceColumns 选项,然后重新装载树状列表的列集合 (例如通过 XtraTreeList 设计器)。 下面的插图展示了服务列可视的同一个 TreeList 控件: