一个vs2015 WPF treeview的例子

1、首先在窗口中拖入一个treeview控件,命名为TreeAddressSpace。

2、在窗口初始化函数中添加根节点,根节点名称为TreeRootNode:


        public MainWindow()
        {
            InitializeComponent();


            TreeRootNode = new TreeViewItem();
            TreeRootNode.Header = "UA Server Address Space";
            TreeRootNode.FontSize = 15;
            TreeAddressSpace.Items.Add(TreeRootNode);
            TreeRootNode.ToolTip = i.ToString();
            i++;
        }

3、界面上选择控件,在属性窗口添加事件节点选择事件,内容为当点击节点时,如果没有下一级,则增加下一级:

  private void TreeAddressSpace_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            TreeViewItem treeValue = (TreeViewItem)TreeAddressSpace.SelectedItem;
            
            if(treeValue.HasItems)
            {
            }
            else if(treeValue.ToolTip.ToString() == "1")
            {
                TreeViewItem treeViewItemIntance = new TreeViewItem();
                funcTreeViewItemAdd(TreeRootNode, treeViewItemIntance, "第" + i.ToString() + "级");
            }
            else
            {
                TreeViewItem treeViewItemIntance = new TreeViewItem();
                funcTreeViewItemAdd(treeValue, treeViewItemIntance, "第" + i.ToString() + "级");
            }
        }

4、完整代码如下:

   /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        TreeViewItem TreeRootNode;

        public MainWindow()
        {
            InitializeComponent();


            TreeRootNode = new TreeViewItem();
            TreeRootNode.Header = "UA Server Address Space";
            TreeRootNode.FontSize = 15;
            TreeAddressSpace.Items.Add(TreeRootNode);
            TreeRootNode.ToolTip = i.ToString();
            i++;
        }


        int i = 0;
        private void funcTreeViewItemAdd(TreeViewItem fatherTreeItem, TreeViewItem sonTreeItem, string SonHeader)
        {
            sonTreeItem.Header = SonHeader;
            sonTreeItem.FontSize = 15;
            fatherTreeItem.Items.Add(sonTreeItem);
            i++;
            sonTreeItem.ToolTip = i.ToString();

        }


        private void TreeAddressSpace_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {
            TreeViewItem treeValue = (TreeViewItem)TreeAddressSpace.SelectedItem;
            
            if(treeValue.HasItems)
            {
            }
            else if(treeValue.ToolTip.ToString() == "1")
            {
                TreeViewItem treeViewItemIntance = new TreeViewItem();
                funcTreeViewItemAdd(TreeRootNode, treeViewItemIntance, "第" + i.ToString() + "级");
            }
            else
            {
                TreeViewItem treeViewItemIntance = new TreeViewItem();
                funcTreeViewItemAdd(treeValue, treeViewItemIntance, "第" + i.ToString() + "级");
            }
        }
5、效果如图:



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值