一个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、效果如图:



猜你喜欢

转载自blog.csdn.net/FHZZWZ/article/details/78496407