Dev TreeList 树形结构
一.您将treeList.OptionsView.ShowCheckBoxes设置为True,树形结构前就会出现CheckBox选择框,如果您想达到选择父节点,子节点也同时选中的效果,需将treeList.OptionsBehavior.AllowRecursiveNodeChecking设置为True。


设置完即可看到效果,如图:

二.扩展方法
namespace LG.APS.Client.CustomControls.Extensions
{
public static class TreeListExtension
{
private static List<TreeListNode> selectedTreeListNodes = new List<TreeListNode>();
/// <summary>
/// 得到已选择的全部节点
/// </summary>
/// <param name="parentNode"></param>
/// <returns></returns>
private static List<TreeListNode> GetAllCheckedNodes(TreeListNode parentNode)
{
if (parentNode.Nodes.Count == 0)
{
return selectedTreeListNodes;//递归终止
}
foreach (TreeListNode node in parentNode.Nodes)
{
if (node.CheckState == CheckState.Checked)//判断当前节点选择状态
{
selectedTreeListNodes.Add(node);
}
if (node.HasChildren)
{
GetAllCheckedNodes(node);//执行递归
}
}
return selectedTreeListNodes;
}
/// <summary>
/// 得到已选择的全部节点
/// </summary>
/// <param name="treeList"></param>
/// <returns></returns>
public static List<TreeListNode> GetAllCheckedNodes(this TreeList treeList)
{
selectedTreeListNodes.Clear();
List<TreeListNode> selectedNodes = new List<TreeListNode>();
if (treeList.Nodes.Count > 0)
{
foreach (TreeListNode node in treeList.Nodes)//拿所有结点
{
selectedNodes.AddRange(GetAllCheckedNodes(node));
}
}
return selectedNodes;
}
/// <summary>
/// 得到已选择的他部节点对应的对象实例列表
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="treeList"></param>
/// <param name="parentNode"></param>
/// <returns></returns>
public static List<T> GetAllCheckedObject<T>(this TreeList treeList)
{
List<T> results = new List<T>();
List<TreeListNode> selectedTreeListNodes = new List<TreeListNode>();
if (treeList.Nodes.Count > 0)
{
selectedTreeListNodes = treeList.GetAllCheckedNodes();
}
foreach (var node in selectedTreeListNodes)
{
results.Add((T)treeList.GetDataRecordByNode(node));
}
return results;
}
}
}
官方例子:
https://docs.devexpress.com/WindowsForms/120672/controls-and-libraries/tree-list/feature-center/focus-selection-and-navigation/node-checking-checkboxes-and-radio-buttons
https://www.cnblogs.com/improveself/articles/12195941.html
浙公网安备 33010602011771号