2012-01-28 5 views
0

Я пишу немного кода, который я хочу заполнить TreeView, что он довольно успешно, но я также хочу поместить словарь в тег каждого уровня 1 дочерний узел. После того, как тег установлен в словарь, можно ли каким-либо образом изменить словарь, не обновляя тег.Использование словаря в теге TreeNode - VB.NET

For Each verse In Verses 

    Dim _verse = verse.ToString.Trim 
    Dim _node As TreeNode = New TreeNode(_verse.Split(vbNewLine).First & "...") 
    _node.ToolTipText = _verse 
    _node.Tag = New Dictionary(Of String, Object) 
    Node.Nodes.Add(_node) 

Next 

ответ

0

Вы можете позже просто бросить тэг не Dictionary(Of String, Object), а затем манипулировать словарь как обычно.

Например, если предположить, что currentNode является узлом интереса, вы можете иметь что-то вроде следующего.

Dim dictionary as Dictionary(Of String, Object) = _ 
    CType(currentNode.Tag, Dictionary(Of String, Object)) 

dictionary.Add("NewKey", newObject); 
+0

Это, кажется, вызывает «System.InvalidCastException» ... – rbrtl

+0

Это означает, что вы не назначили словарной экземпляр тега. Используйте отладчик, чтобы проверить значение тега и посмотреть, что представляет собой фактический тип объекта, назначенного тегу. –