Avatar
Tayson
Člen
Avatar
Tayson:

Neviete mi niekto poradit ked mam v programe pouzity treeview a je tam lubovolny pocet uzlov a vnoreni ako prehladat cely treeview prvok po prvku pretoze kazdy ten prvok v tom strome ma svoju hodnotu a potrebujem ho cely prehladat aby som si vedel spravit vypocty. Dakujem

 
Odpovědět 3.3.2015 19:29
Avatar
Ondřej Hanák
Redaktor
Avatar
Ondřej Hanák:
ItemCollection items = tree.Items;

foreach (TreeViewItem node in items)
{

}
 
Nahoru Odpovědět 3.3.2015 19:44
Avatar
Tayson
Člen
Avatar
Odpovídá na Ondřej Hanák
Tayson:

To prehladavanie funguje ale neprehladava to dalej do hlbky to znamena ze ak mam nieco taketo :

prvok1
prvok2
prvok3
prvok4
prvok5
prvok6

to je ukazka treeview bez ciar .... kde cez foreach mi zobrazi prvok1, prvok2, prvok6 .... ale ostatne uz nie napriklad prvok3 a prvok5 je vnoreny v prvku2 a zasa prvok4 je vnoreny v prvku3 ... tie mi nezobrazuje vez ten foreach ibat prvok 1 a 2 a 6

 
Nahoru Odpovědět 3.3.2015 19:53
Avatar
Tayson
Člen
Avatar
Odpovídá na Ondřej Hanák
Tayson:

No nezobrazilo presne tie prvky tak ako som chcel tak skusim este raz to nazorne ukazat:

prvok1
prvok2
....|->prvok3
........|->prvok4
....|->prvok5
prvok6

 
Nahoru Odpovědět 3.3.2015 19:56
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Tayson
Jan Vargovský:

Jestli ti stačí malá rada, tak použij rekurzi. Jestli ti to stačit enbude, tak chvíli počkej, já ti to tu postnu :)

 
Nahoru Odpovědět 3.3.2015 20:10
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Tayson
Jan Vargovský:
private IEnumerable<TreeViewItem> GetSubTreeViewItems(ItemCollection items)
{
    foreach (var item in items.OfType<TreeViewItem>())
    {
        yield return item;
        if (item.Items != null)
            foreach (var subItem in GetSubTreeViewItems(item.Items))
                yield return subItem;
    }
}
 
Nahoru Odpovědět 3.3.2015 20:17
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:

Vies mi nejako v kratkosti objasnit o co sa jedna alebo co to robi ?

 
Nahoru Odpovědět 3.3.2015 20:29
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Tayson
Jan Vargovský:

Moc nevím co je na tom nejasné :D Vezmeš kolekci a tu celou projdeš, uložíš si její hodnotu. Pak prohledáváš jen do hloubky, takže vezmeš položku a prohledáš jeho podpoložky, každou z nich uložíš a takhle jedeš pořád, dokud nějaké jsou. Pak z toho všeho vyskočíš a bereš zase od první vrstvy a jedeš dolů.

Ještě trošku jinak.

  1. Procházíš všechny položky a každou z nich si uložíš.
  2. Když má položka nějaké podpoložky, tak jdeš k bodu 1.
 
Nahoru Odpovědět 3.3.2015 20:41
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:

Ale ak rozumiem trochu tomu kodu tak pozeram ze je tam len jedno vnorenie ale co keby som mal v prvku4 dalsie vnorenie a potom dalsie ... to by bolo v sebe vela foreachov a ja to chcem mat dynamicky lebo neviem ci nebude 10 vnoreni alebo 20 a to je blbost takto riesit

 
Nahoru Odpovědět 3.3.2015 20:41
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Tayson
Jan Vargovský:

Zkoušel jsi to vůbec...? To vnoření je rekurzivně, takže mi je úplně jedno kolikrát se to bude zanořovat (teoreticky, paměťově omezen jsi).

 
Nahoru Odpovědět 3.3.2015 20:42
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:

Takze to co si mi poslal je funkcia ktoru budem volat ? Pretoze ja mam spravenu udalost na stlacenie tlacidla. A tam to chcem aby sa to vykonalo. Mam spraveny objekt ktory sa vola treeView1 dajme tomu. Takze mam tu funkciu volat ?

 
Nahoru Odpovědět 4.3.2015 8:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.