栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

WPF中TreeView的使用

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WPF中TreeView的使用

WPF中TreeView的使用

一、最简单的用法,使用TreeViewItem展开,如下:


    
        
            
                
                
                
            
            
                
                
                
            
            
                
                
                
            
        
    

效果:

二、获取xml文件中的数据进行展示,如下:
xml文件XMLFile1.xml代码:



  
    
      
      
      
      
    
  
  
    
      
      
      
      
    
  
  
    
      
      
      
      
    
  

窗体xaml代码:


    
        
        
        
        
            
        
        
        
            
        
        
        
            
        
    
    
        
    

运行效果:

三、使用数据绑定来来展示节点,这里在一个程序中,用三个函数举了三个例子,如下:
首先新建一个PropertyNodeItem类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WPFTreeview
{
    class PropertyNodeItem
    {
        public string Icon { get; set; }
        public string EditIcon { get; set; }
        public string DisplayName { get; set; }
        public string Name { get; set; }

        public List Children { get; set; }
        public PropertyNodeItem()
        {
            Children = new List();
        }
    }
}

主窗体xaml代码:


    
        
            
                
                    
                        
                        
                        
                        
                            
                        
                    
                
            
        
    

主窗体后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Xml;

namespace WPFTreeview
{
    /// 
    /// MainWindow.xaml 的交互逻辑
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            //三个函数
            ShowTreeView1();
            //ShowTreeView2();
            //ShowTreeView3();
        }

        private const string FOLDER_ICON =  @"";//Icon路径
        private const string EDITABLE_ICON = @"";//Icon路径
        private const string TAG_ICON = @"";//Icon路径

        private void ShowTreeView1()
        {
            List itemList = new List();
            PropertyNodeItem node1 = new PropertyNodeItem()
            {
                DisplayName = "蔬菜",
                Name = "蔬菜可提供人体所必需的多种维生素和矿物质等营养物质!",
                Icon = FOLDER_ICON,
            };
            PropertyNodeItem node1tag1 = new PropertyNodeItem()
            {
                DisplayName = "青菜",
                Name = "青菜是十字花科,芸苔属一年或二年生草本植物!",
                Icon = TAG_ICON,
                EditIcon = EDITABLE_ICON
            };
            node1.Children.Add(node1tag1);
            PropertyNodeItem node1tag2 = new PropertyNodeItem()
            {
                DisplayName = "白菜",
                Name = "白菜是我国原产蔬菜,有悠久的栽培历史!",
                Icon = TAG_ICON,
                EditIcon = EDITABLE_ICON
            };
            node1.Children.Add(node1tag2);
            itemList.Add(node1);

            PropertyNodeItem node2 = new PropertyNodeItem()
            {
                DisplayName = "动物",
                Name = "动物是生物的一个种类。它们一般以有机物为食,能感觉,可运动,能够自主运动!",
                Icon = FOLDER_ICON,
            };
            PropertyNodeItem node2tag1 = new PropertyNodeItem()
            {
                DisplayName = "老虎",
                Name = "老虎是大型猫科动物;毛色浅黄或棕黄色,满身黑色横纹!",
                Icon = TAG_ICON,
                EditIcon = EDITABLE_ICON
            };
            node2.Children.Add(node2tag1);
            PropertyNodeItem node2tag2 = new PropertyNodeItem()
            {
                DisplayName = "大象",
                Name = "大象很早就成了人类的朋友,并能为人类提供帮助!",
                Icon = TAG_ICON,
                EditIcon = EDITABLE_ICON
            };
            node2.Children.Add(node2tag2);
            itemList.Add(node2);

            treeView.ItemsSource = itemList;
        }

        private void ShowTreeView2()
        {
            List itemList = new List();

            PropertyNodeItem leafOneNode = new PropertyNodeItem();
            leafOneNode.DisplayName = "小员工A";
            leafOneNode.Name = "这是小员工A";
            leafOneNode.Children = new List();

            PropertyNodeItem leafTwoNode = new PropertyNodeItem();
            leafTwoNode.DisplayName = "小员工B";
            leafTwoNode.Name = "这是小员工B";
            leafTwoNode.Children = new List();

            PropertyNodeItem leafThreeNode = new PropertyNodeItem();
            leafThreeNode.DisplayName = "小员工C";
            leafThreeNode.Name = "这是小员工C";
            leafThreeNode.Children = new List();

            PropertyNodeItem secondLevelNode = new PropertyNodeItem();
            secondLevelNode.DisplayName = "总经理";
            secondLevelNode.Name = "这是二级领导";
            secondLevelNode.Children = new List() { leafOneNode, leafTwoNode, leafThreeNode };

            PropertyNodeItem firstLevelNode = new PropertyNodeItem();
            firstLevelNode.DisplayName = "董事长";
            firstLevelNode.Name = "这是一级领导";
            firstLevelNode.Children = new List() { secondLevelNode };

            itemList.Add(firstLevelNode);
            treeView.ItemsSource = itemList;
        }

        private void ShowTreeView3()
        {
            List itemList = new List();

            XmlDocument doc = new XmlDocument();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;
            XmlReader reader = XmlReader.Create(@"XMLProducts.xml", settings);

            doc.Load(reader);
            XmlNode xn = doc.SelectSingleNode("Products");
            XmlNodeList xnl1 = xn.ChildNodes;

            foreach (XmlNode xn1 in xnl1)
            {
                //一级节点
                PropertyNodeItem firstLevelNode = new PropertyNodeItem();
                XmlElement xe1 = (XmlElement)xn1;
                firstLevelNode.Name = "我是一级节点";
                firstLevelNode.DisplayName = xe1.GetAttribute("Name").ToString();

                XmlNodeList xnl2 = xe1.ChildNodes;
                foreach (XmlNode xn2 in xnl2)
                {
                    XmlElement xe2 = (XmlElement)xn2;
                    XmlNodeList xnl3 = xe2.ChildNodes;

                    PropertyNodeItem secondLevelNode = new PropertyNodeItem();
                    secondLevelNode.Name = "我是二级节点";
                    secondLevelNode.DisplayName = xe2.GetAttribute("Name").ToString();

                    foreach (XmlNode xn3 in xnl3)
                    {
                        XmlElement xe3 = (XmlElement)xn3;
                        PropertyNodeItem leafOneNode = new PropertyNodeItem();
                        leafOneNode.DisplayName = xe3.GetAttribute("Name").ToString();
                        leafOneNode.Children = new List();

                        secondLevelNode.Children.Add(leafOneNode);
                    }
                    firstLevelNode.Children.Add(secondLevelNode);
                }
                itemList.Add(firstLevelNode);
            }
            reader.Close();
            treeView.ItemsSource = itemList;
        }
    }

}

三个例子运行效果分别是:


其中第三个例子是从XML文件中读取的数据,XMLProducts.xml文件代码如下:



  
    
      
      
      
    
    
      
      
      
    
    
      
      
      
    
  
  
    
      
      
      
    
    
      
      
      
    
    
      
      
      
    
  
  
    
      
      
      
    
    
      
      
      
    
    
      
      
      
    
  

XML文件属性如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号