Simple Nested TreeView Xaml structure?

前端 未结 2 1635
野性不改
野性不改 2020-12-07 05:36

I am trying to build a WPF TreeView with three layers. CountryReportTitle is a string property and ArticleCategoryTitlesList is a coll

2条回答
  •  一生所求
    2020-12-07 06:20

    Here's my go-to example for treeviews.

    Use a HierarchicalDataTemplate for elements in the tree. Note that there are three layers, and each layer is its own type. This is for convenience, but you could define one type and use one template or any mix of types for your tree. Having different types represent different things in the tree makes using templates extremely convenient.

    The data classes

    public class ViewModel
    {
        public ObservableCollection ItemsA { get; set; }
        public ViewModel()
        {
            ItemsA = new ObservableCollection(new[]{
                new ItemA{Name = "A one"},
                new ItemA{Name = "A Two"},
                new ItemA{Name = "A Three"},
            });
        }
    }
    
    public class ItemA
    {
        public ObservableCollection ItemsB { get; set; }
        public string Name { get; set; }
        public ItemA()
        {
            ItemsB = new ObservableCollection(new[]{
                new ItemB{Name = "B one"},
                new ItemB{Name = "B Two"},
                new ItemB{Name = "B Three"},
            });
        }
    }
    public class ItemB
    {
        public ObservableCollection ItemsC { get; set; }
        public string Name { get; set; }
        public ItemB()
        {
            ItemsC = new ObservableCollection(new[]{
                new ItemC{Name = "C one"},
                new ItemC{Name = "C Two"},
                new ItemC{Name = "C Three"},
            });
        }
    }
    public class ItemC
    {
        public string Name { get; set; }
    }
    

    And the UI

     
                
        
            
                
            
            
                
            
            
                
            
        
    
    

    gives you a simple treeview

    enter image description here

提交回复
热议问题