Imam jedan TreeView koji se ucitava u programu na nekoliko mjesta. Problem je sto je klijent/server aplikacija i kada postoji veci broj objekata od kojih se pravi taj treeview onda se sporo to sve ucitava. Ideja za quickfix jeste da kada se jednom ucita to stablo, da se sacuva na nekom mjestu i da ga samo pozivam, da se ne pravi svaki put iz pocetka. Krenuo sam od najprostijeg rjesenja koje naravno ne radi, a glasi otp ovako:
if(TreeViewKojiCuvam == null)
{
NapraviStablo(TreeViewSaKonkretneForme);
TreeViewSaKonkretneForme.ExpandAll();
TreeViewKojiCuvam = TreeViewSaKonkretneForme;
}
else
{
TreeViewSaKonkretneForme = TreeViewKojiCuvam;
TreeViewSaKonkretneForme.ExpandAll();
}
Kada otvorim prvu formu, (tj kada je TreeViewKojiCuvam null), onda se stablo prikaze. E sad, kada otvorim neku drugu formu, ne izbacuje se nista. Program nigdje ne puca niti baca exception, sve prodje ok, ali se nista ne prikazuje. Kada u Debug prodje pretposljedni korak, vidim da se u TreeViewSaKonkretneForme ucitao 100% makar prvi node, ali ne iskace nista.
Sad, ja kontam da je logicno sto ovo ovako ne radi jer prakticno gazim controlu controlom, ali TreeView nema neku kolekciju kao sto ima datagridview u vidu datasource-a, pa da njega pamtim. Koliko vidim, moze da se pristupi samo nekom konkretnom Node-u, pa sad da preko nekih for petlji pakujem iz jednog u drugi nista necu dobiti. Takodje, da samo pamtim kolekciju objekata u softveru pa da ipak pozivam metod u NapraviStablo(), opet ne dobijam puno.
Siguran sam da postoji neka mnogo jednostavna glupost koja moze da se uradi da bi moja, bar osnovna, ideja radila.
Unapred hvala na odgovorima i odmah da se izvinim ako sam glup i ako je ovo elementarna stvar. Jednostavno nisam radio sa TreeView...