Как сделать видимым дочерний узел = false в элементе управления Treeview - PullRequest
3 голосов
/ 06 июня 2011

У меня есть форма окна с управлением представлением дерева. Это древовидное представление имеет корневой узел и 2 дочерних узла. Мое требование - мне нужно скрыть первый дочерний узел. Можно ли сделать видимым ложным этот конкретный кивок ребенка

Ответы [ 2 ]

3 голосов
/ 06 июня 2011

Да, вы можете наследовать от узла дерева и создавать свое собственное поведение.Вот так.

public class RootNode : TreeNode
{
    public List<ChildNode> ChildNodes { get; set; }

    public RootNode()
    {
        ChildNodes = new List<ChildNode>();
    }

    public void PopulateChildren()
    {
        this.Nodes.Clear();

        var visibleNodes = 
            ChildNodes
            .Where(x => x.Visible)
            .ToArray();

        this.Nodes.AddRange(visibleNodes);
    }

    //you would use this instead of (Nodes.Add)
    public void AddNode(ChildNode node)
    {
        if (!ChildNodes.Contains(node))
        {
            node.ParentNode = this;
            ChildNodes.Add(node);
            PopulateChildren();
        }
    }

    //you would use this instead of (Nodes.Remove)
    public void RemoveNode(ChildNode node)
    {
        if (ChildNodes.Contains(node))
        {
            node.ParentNode = null;
            ChildNodes.Remove(node);
            PopulateChildren();
        }

    }
}

public class ChildNode : TreeNode
{
    public RootNode ParentNode { get; set; }
    private bool visible;
    public bool Visible { get { return visible; } set { visible = value;OnVisibleChanged(): } }
    private void OnVisibleChanged()
    {
        if (ParentNode != null)
        {
            ParentNode.PopulateChildren();
        }
    }
}
1 голос
/ 06 июня 2011

Нет, нет способа сделать узел невидимым.Вы должны удалить его, а не сделать невидимым.А позже вам придется добавить его обратно в исходное положение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...