/// <summary> /// 格式化TreeList样式和属性 /// </summary> /// <param name="tree">TreeList</param> /// <param name="type"></param> /// <param name="showColumns">显示列头</param> /// <param name="showIndicator">显示指示列</param> public static void TreeFormat(TreeList tree, NodeIconType type = NodeIconType.General, bool showColumns = false, bool showIndicator = false) { // 使列标题文字居中显示 foreach (TreeListColumn column in tree.Columns) { if (column.FieldName == "index") { column.SortOrder = SortOrder.Ascending; } column.OptionsColumn.AllowSort = false; column.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center; } // 格式化TreeList属性 tree.BorderStyle = BorderStyles.NoBorder; tree.KeyFieldName = "id"; tree.ParentFieldName = "parentId"; tree.OptionsBehavior.Editable = false; tree.OptionsView.ShowColumns = showColumns; tree.OptionsView.ShowIndicator = showIndicator; tree.OptionsView.ShowHorzLines = false; tree.OptionsView.ShowVertLines = false; tree.RowHeight = 23; tree.VertScrollVisibility = DevExpress.XtraTreeList.ScrollVisibility.Always; CustomDrawNodeImages(tree, type); }
/// <summary> /// 注册TreeList控件重绘节点图标事件 /// </summary> /// <param name="tree">TreeList</param> /// <param name="type">图标类型</param> private static void CustomDrawNodeImages(TreeList tree, NodeIconType type) { tree.CustomDrawNodeImages += (sender, args) => { switch (type) { case NodeIconType.General: var node = args.Node; args.SelectImageIndex = node.Level == 0 || node.HasChildren ? (node.Expanded ? 2 : 1) : 0; break; case NodeIconType.Category: args.SelectImageIndex = args.Node.Expanded ? 2 : 1; break; case NodeIconType.NodeType: args.SelectImageIndex = (int)args.Node.GetValue("nodeType"); break; case NodeIconType.Organization: args.SelectImageIndex = (int)args.Node.GetValue("nodeType") - 1; break; case NodeIconType.OnlyLevel0: if (args.Node.Level > 0) { return; } args.SelectImageIndex = (int)args.Node.GetValue("nodeType"); break; case NodeIconType.Custom: break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }; }
/// <summary> /// 初始化TreeListLookUpEdit /// </summary> /// <param name="control">TreeListLookUpEdit</param> /// <param name="list">MemberSelect集合</param> /// <param name="type">图标类型</param> public static void InitTreeListLookUpEdit(TreeListLookUpEdit control, List <TreeLookUpMember> list, NodeIconType type = NodeIconType.General) { control.Properties.DataSource = list; control.Properties.DisplayMember = "name"; control.Properties.ValueMember = "id"; control.Properties.PopupFormMinSize = new Size(60, 0); control.Properties.TreeList.ParentFieldName = "parentId"; TreeFormat(control.Properties.TreeList, type); }