Nastavil jsem target framework na full (jen to najít), referenci na hotový control a už to šlape. Neuvažoval jsem nikdy o návrháři a jak jsem koukal, tak bych to nedal dohromady, moje potřeba je plnit vše za běhu s kontrolou existence rodiče a jeho získáním pomocí klíče. Nejdřív jsem postrádal získání Node podle klíče(key), ale pomocí Name lze klíč u Node nastavit a nakonec mi připadá hbitější si připravít nodes do dictionary a potom je vložit pomocí AddRange. Asi nic lepšího nevymyslím :
Dim nds As New System.Collections.Generic.Dictionary(Of String, TreeListNode)
'pridat rodice
Dim n As New TreeListNode("root")
With n
.Name = root_key
.SubItems.Add("abc")
End With
nds.Add(root_key, n)
Dim ch As New TreeListNode("child")
With ch
.Name = child_key
.SubItems.Add("abc")
End With
'pridat k rodici
n.Nodes.Add(ch)
nds.Add(child_key, ch)
'Dim b1 As Boolean = nds.ContainsKey(a_key) 'obsahuje-li klíč a_key
'Dim p As TreeListNode = Nothing
'Dim b2 As Boolean = nds.TryGetValue(key_of_p, p) 'ziskat rodice dle klice
'dale naplnit vse potrebne ...
'ziskat root nodes do pole, siroty bez rodice
Dim rn() As TreeListNode
rn = (From n As TreeListNode In nds.Values Where n.Parent Is Nothing).ToArray
'naprat pole, kde siroty jenom zustaly, do treelistview
tlv.Nodes.AddRange(rn)
'pripadne rozbalit
tlv.ExpandAll()
'dotaz viz nize
tlv.Sort()
Nedaří se mi správně seřadit čeština, např. Š se řadí za Z, hledal jsem něco ohledně vnuknutí culture, nejspíš vytvořit vlastní SortComparer, kde se u Compare předá CurrentCulture ? Hluboká poklona tvůrci, bude-li čas, poprosím ještě o pomoc se seřazením, ale možná, že se tím nakonec nějak prokoušu, nechci zneužívat poskytnutý full service.
|