利用递归绑定DevExpress.XtratreeList.TreeList数据 List<ListItem> list=new List<ListItem> (); /// <summary> /// treeList绑定 /// </summary> /// <param name="parent">父ID</param> private void TreeListBind(string ParentID) { treeList1.Nodes.Clear(); List<ListItem> items=list.FindAll(delegate(ListItem model) { return model.FProID.ToString() == ParentID; }); if (this.list.Count < 1 && items.Count < 1) return; TreeListNode Node = treeList1.AppendNode(new object[] { "FID", "FName" }, null); Node.SetValue(0, "代码"); Node.SetValue(1, "名称"); foreach (ListItem st in items) { TreeListNode tn = treeList1.AppendNode(new object[] { st.FID, st.FName }, Node); tn.SetValue(treeListColumn1, st.FNumber); tn.SetValue(treeListColumn2, st.FName); tn.Tag = st; GetChild(tn, st.FID.ToString()); } treeList1.ExpandAll(); } private void GetChild(TreeListNode tn, string ParentID) { List<ListItem> items=list.FindAll(delegate(ListItem model) { return model.FProID.ToString() == ParentID; }); if (this.list.Count < 1 && items.Count < 1) return; foreach (ListItem st in items) { TreeListNode tn = treeList1.AppendNode(new object[] { st.FID, st.FName }, Node); tn.SetValue(treeListColumn1, st.FNumber); tn.SetValue(treeListColumn2, st.FName); tn.Tag = st; GetChild(tn, st.FID.ToString()); } }