예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }