public void SetCellContents(TreeNode node)
        {
            Level = node.NodeLevel;

            _imageView = new UIImageView
            {
                Image = (node.NodeType == "folder") ? UIImage.FromFile("folder.png") : UIImage.FromFile("file.png"),
                ContentMode = UIViewContentMode.Left
            };
            _imageView.SizeToFit();
            //_imageView.Frame = new RectangleF((float)_imageView.Frame.X, (float)_imageView.Frame.Y, (float)_imageView.Bounds.Width, (float)_imageView.Bounds.Height);

            _titleLabel = new UILabel()
            {
                TextColor = UIColor.Black,
                BackgroundColor = UIColor.Clear,
                Text = node.NodeName
            };
            _titleLabel.SizeToFit();
            //_titleLabel.Frame = new RectangleF((float)_titleLabel.Frame.X, (float)_titleLabel.Frame.Y, (float)_titleLabel.Bounds.Width, (float)_titleLabel.Bounds.Height);

            foreach (var subview in ContentView.Subviews)
            {
                subview.RemoveFromSuperview();
            }

            ContentView.AddSubviews(_imageView, _titleLabel);
        }
        private TreeNode SetUpData()
        {
            var containerParrent = new TreeNode { NodeLevel = 1, NodeName = "Root Folder", NodeType = "folder" };

            var nodeLevel21 = new TreeNode { NodeName = "Subfolder 1", NodeLevel = 2, Parent = containerParrent, NodeType = "folder" };
            var nodeLevel22 = new TreeNode { NodeName = "Subfolder 2", NodeLevel = 2, Parent = containerParrent, NodeType = "folder" };

            var nodeLevel31 = new TreeNode { NodeName = "Subsubfolder", NodeLevel = 3, NodeType = "folder", Parent = nodeLevel21 };
            var nodeLevel32 = new TreeNode() { NodeName = "Empty", NodeLevel = 3, NodeType = "folder", Parent = nodeLevel21 };

            var nodeLevel4 = new TreeNode() { NodeName = "I'm a file!!", NodeLevel = 4, NodeType = "file", Parent = nodeLevel31 };

            containerParrent.Children.Add(nodeLevel21);
            containerParrent.Children.Add(nodeLevel22);

            nodeLevel21.Children.Add(nodeLevel31);
            nodeLevel21.Children.Add(nodeLevel32);

            nodeLevel31.Children.Add(nodeLevel4);

            return containerParrent;
        }
        private TreeNode ConvertJsonInput(TreeNode parent, JObject input, int depth)
        {
            var node = new TreeNode
            {
                NodeName = input["title"].ToString(),
                NodeType = input["type"].ToString(),
                FilePath = input["filepath"].ToString(),
                NodeLevel = depth + 1,
                Parent = parent
            };

            foreach (var c in input["children"])
            {
                node.Children.Add(ConvertJsonInput(node, JObject.Parse(c.ToString()), node.NodeLevel));
            }

            return node;
        }