Markus Rechberger Ответов: 1

Дерево - узла не расширяется


У меня есть TreeView с несколькими узлами, и если специальный узел (вы увидите в коде) удален, родительский узел должен быть расширен после обновления TreeView.

Мне все еще нужна помощь :(

Что я уже пробовал:

public void Remove(){
    ...
    ...
    else if ((NodeType)n.Tag == NodeType.Attribute) //Here I simply check if it's the "special" parent
    {
       Commands.CommandAttributeRemove cmd = (Commands.CommandAttributeRemove)mAppData.CommandFactory.Create("AttributeRemove");
       cmd.Data = n.Text;
       cmd.ObjectClass = mObjectClass;
       cmd.ObjectTypeName = n.Parent.Parent.Text;
       list.Add(cmd);
       mNodeToExpand = mTreeView.SelectedNode.Parent; //THIS LINE IS IMPORTANT... mNodeToExpand is a member variable which I use in UpdateData()
    }
    ...
    ...
    UpdateData();
}

public void UpdateData()
    {
       … //A lot of not so important stuff happening here (at least not important for what I want, I think)
       ...
        //Update Selected Items (for the case that objects were deleted) and UpdateSelection
        OnSelect();

        //UpdateSelection();
        this.Update();

Теперь вот интересный материал::
    if (mNodeToExpand != null)
        {
            mNodeToExpand.Expand();
            mNodeToExpand = null;
        }
}

Именно так я пытался добиться того, чего хочу, но узел не расширяется (у него все еще есть другие дочерние элементы).
В
Remove()
Я тоже пытался
mTreeView.SelectedNode.Parent.Nodes.Add(new Node("Blabla"));
но он даже не добавляет узел;

1 Ответов

Рейтинг:
0

Darryl Bryk

Я предполагаю, что перед удалением дерево работает нормально, расширяясь, когда это необходимо. Как вы его удаляете? Я использую что-то вроде:

типы pnode.Узлы[i].удалить();

где pnode-это родительский узел.