Nie skończona wielopoziomowa lista

0

Witam.

Nie mam na to nawet pomysłu jak zrobić.
Aktualnie tworze drzewo w programie opartym na WPF.
i wszystko by było fajnie do 2 poziomów bo to ręczenie mogę w miarę zrobić ale potrzebuje zrobić dynamiczne drzewo.
Tzn żeby dało się dodawać poziomy do nieograniczonej głębokości.

Czy może mi ktoś podpowiedzieć?

Nie wiem jak zrobić nie skończenie głęboka listę list

0

każdy TreeViewItem może mieć wiele itemów i zawierać pod sobą również TreeViewItemy - ostatni poziom po prostu nie zawiera subelementów

0

A jak to ugryźć od strony kodu??

Żeby zrobić nieskończenie głęboką listę list

0

tworzysz klasę która będzie posiadać jakiś powiedzmy nagłówek i listę elementów tego samego typu - potem to tylko bindujesz odpowiednio

0

ale to chyba daje tylko jeden poziom.

1

Daje tyle poziomów, ilu poziomowy obiekt sobie stworzysz

Szybki przykład:

public class Item
{
	public string Header;
	public List<Item> Nodes;
}

mock:

var structure = new Item()
{	
	Header = "Level1",
	Nodes = new List()
	{	
		new Item()
		{
			Header = "Level2a",
			Nodes = new List()
		},
		new Item()
		{
			Header = "Level2b",
			Nodes = new List()
		}
		
	}
}

Nie obiecuje, ze sie skompiluje, nie pilem jeszcze kawy;p

0

ok sprawdzę

0

Pogubiłem się a jak np do poziomu2b dorobić 3a i 4a

1
var structure = new Item
{    
    Header = "Level1",
    Nodes = new List<Item>
    {    
        new Item
        {
            Header = "Level2a"
        },
        new Item
        {
            Header = "Level2b",
            Nodes = new List<Item>
            {
                 new Item
                 {
                     Header = "Level3a"
                 },
                 new Item
                 {
                     Header = "Level4a"
                 }
            }
        }
    }
}
1

No normalnie, tak jak byly dorabiane poprzednie nody:

var structure = new Item()
{    
    Header = "Level1",
    Nodes = new List()
    {    
        new Item()
        {
            Header = "Level2a",
            Nodes = new List()
        },
        new Item()
        {
            Header = "Level2b",
            Nodes = new List()
			{	
				new Item()
				{	
					Header = "Level3a",
					Nodes = new List() //tutaj mozesz dorabiac "glebsze" poziomy
				},
				new Item()
				{	
					Header = "Level3b",
					Nodes = new List()
				}
			}
        }
    }
}
0

Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1