WPF TreeView加载多级节点

//前台界面

     <TreeView Name="tvProperties" Width="250" Padding="0" Margin="0" BorderThickness="1">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate DataType="{x:Type local:ComponentModel}" ItemsSource="{Binding Path=Children}">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock VerticalAlignment="Center" Text="{Binding ComponentName}"></TextBlock>
                        <StackPanel.ToolTip>
                            <TextBlock VerticalAlignment="Center" Text="{Binding ComponentName}" TextWrapping="Wrap" MaxWidth="200" ></TextBlock>
                        </StackPanel.ToolTip>
                    </StackPanel>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

//初始数据集

List<ComponentModel> initializeDataSet = new List<ComponentModel>();

 initializeDataSet.Add(new ComponentModel() { ComponentID = 1, ComponentName = "test1", Level = 1, ParentID = 0 });

            initializeDataSet.Add(new ComponentModel() { ComponentID = 2, ComponentName = "test2", Level = 2, ParentID = 1 });

            initializeDataSet.Add(new ComponentModel() { ComponentID = 3, ComponentName = "test3", Level = 3, ParentID = 2 });

//加载数据

tvProperties.ItemsSource =LoadTreeView(0);

 List<ComponentModel> LoadTreeView(int id)
        {
            List<ComponentModel> node = initializeDataSet.FindAll(s=>s.ParentID.Equals(id));
            foreach (var item in node)
            {
                item.Children = LoadTreeView(item.ComponentID);
            }
            return node;
        }

 

internal class ComponentModel
    {
        public int ComponentID { get; set; }
        public string ComponentName { get; set; }
        public int ParentID { get; set; }
        public int Level { get; set; }
        public string CategoryName { get; set; }

        public List<ComponentModel> Children { get; set; }
        public ComponentModel()
        {
            Children = new List<ComponentModel>();
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值