internal static TreeNode CreateTreeNode(TreeNode parentNode, TreeNodeData treeNodeData) { var node = new TreeNode(treeNodeData.Text); node.Tag = treeNodeData; if (parentNode != null) { parentNode.Nodes.Add(node); } return(node); }
public void BuildTreeViewNodes(TreeNode treeViewNode, int year, int month, string[] parentCategoryPath = null) { foreach (var childCategoryNode in Children.Values.OrderBy(cn => cn.Name)) //To sort by total amount, use cn.AmountSum { var treeNodeData = new TreeNodeData() { Text = "{0} ({1})".FormatEx(childCategoryNode.Name, childCategoryNode.TransactionCount), YearFilter = year, MonthFilter = month, CategoryPathFilter = parentCategoryPath == null ? new string[] { childCategoryNode.Name } : parentCategoryPath.Concat(childCategoryNode.Name).ToArray() }; var childTreeViewNode = CreateTreeNode(treeViewNode, treeNodeData); childCategoryNode.BuildTreeViewNodes(childTreeViewNode, year, month, treeNodeData.CategoryPathFilter); } }