使用方法:创建一个TreeHelper对象,传入要加载数据的TreeView,和获取数据的方法,该方法是为获取父结点下的所有子结点。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class TreeHelper
{
public delegate IEnumerable<TreeNode> LoadSubNode(TreeNode parent);
private TreeView _tree;
private LoadSubNode _loadSubNode;
public TreeHelper(TreeView tree,LoadSubNode loadSubNode)
{
if (tree == null || tree.Nodes.Count < 1)
{
throw new ArgumentNullException("TreeView不能为空,并且必要有根结点。");
}
else if (loadSubNode == null)
{
throw new ArgumentNullException("TreeView不能为空,并且必要有根结点。");
}
this._loadSubNode = loadSubNode;
_tree = tree;
this.LoadTree(_tree.Nodes[0]);
}
public void LoadTree(TreeNode parentNode)
{
IEnumerable<TreeNode> subElements = _loadSubNode(parentNode);
foreach (TreeNode child in subElements)
{
parentNode.ChildNodes.Add(child);
LoadTree(child);
}
}
}