WPF TreeView

<Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:self="clr-namespace:WpfTutorialSamples.TreeView_control"
        Title="TreeViewDataBindingSample" Height="150" Width="200">
    <Grid Margin="10">
                <TreeView Name="trvMenu">
                        <TreeView.ItemTemplate>
                                <HierarchicalDataTemplate DataType="{x:Type self:MenuItem}" ItemsSource="{Binding Items}">
                                        <TextBlock Text="{Binding Title}" />
                                </HierarchicalDataTemplate>
                        </TreeView.ItemTemplate>
                </TreeView>
        </Grid>
</Window>

namespace WpfTutorialSamples.TreeView_control
{
        public partial class TreeViewDataBindingSample : Window
        {
                public TreeViewDataBindingSample()
                {
                        InitializeComponent();
                        MenuItem root = new MenuItem() { Title = "Menu" };
                        MenuItem childItem1 = new MenuItem() { Title = "Child item #1" };
                        childItem1.Items.Add(new MenuItem() { Title = "Child item #1.1" });
                        childItem1.Items.Add(new MenuItem() { Title = "Child item #1.2" });
                        root.Items.Add(childItem1);
                        root.Items.Add(new MenuItem() { Title = "Child item #2" });
                        trvMenu.Items.Add(root);
                }
        }

        public class MenuItem
        {
                public MenuItem()
                {
                        this.Items = new ObservableCollection<MenuItem>();
                }

                public string Title { get; set; }

                public ObservableCollection<MenuItem> Items { get; set; }
        }

}
原文地址:https://www.cnblogs.com/chendongbky/p/5949565.html