public void BuildView(IEnumerable <Layer> layers)
    {
        Layers = new List <Layer>(layers);
        Layers.Reverse();
        List <TreeItem> itemList = new List <TreeItem> ();


        Root.Clear();
        foreach (var layer in Layers)
        {
            var objectNames = layer.ObjectPath.Split('/');
            var depth       = objectNames.Length - 1;
            var item        = new TreeItem(layer);
            if (depth <= 0)
            {
                Root.AddChild(item);
            }
            else
            {
                var parent = itemList.FirstOrDefault(x => PSDEditorWindow.IsParent(x.Layer, layer));
                if (parent != null)
                {
                    parent.AddChild(item);
                }
            }
            itemList.Add(item);
        }
    }
    public TreeItem(Layer layer, bool root = false)
    {
        Layer      = layer;
        ObjectName = layer == null ? string.Empty : PSDEditorWindow.GetObjectName(layer);
        Children   = new List <TreeItem> ();
        Opened     = true;

        RootObject = root;
        Parent     = null;
    }