WPF中TreeView添加子节点C#代码控制

在WPF中treeview一般用于显示文件夹目录。

如果只用xaml实现,那么就无法做到动态的改变,所以需要使用到C#代码控制。

而之前准备做一个类似vs的打开.sln就会加载项目目录这种结构的应用。遇到了一些问题。因为买来的教材上面并没有讲到TreeView,而百度到的很多都是SilverLight的版本,根本没办法参照。在一番搜索之后终于知道了用代码向TreeView中添加子节点。

在WPF中向TreeView添加节点的代码为:

            TreeViewItem mtrNode = new TreeViewItem();
            mtrNode.Header = "材料库"; 
            FileTree.Items.Add(mtrNode); 
我写的应用如下:

  • 首先自定义一个TreeView样式

        
            
                
                

                
            

            
                
                
            
            
        

  • 在新建Page的时候传入参数,重写构造函数,此处的FileDir为文件夹目录
    public EditPage(string FileDir)
            {
                InitializeComponent();
                FileTree.Items.Clear();
                /*添加material文件夹目录*/
                var mtrFiles = Directory.GetFiles(FileDir + "/material", ".rfa");
                TreeViewItem mtrNode = new TreeViewItem();
                mtrNode.Header = "材料库"; 
    
                foreach(string fileName in mtrFiles)
                {
                    TreeViewItem item = new TreeViewItem();
                    item.Header = fileName.Substring((FileDir).Length + 10);
                    mtrNode.Items.Add(item);
                }
                FileTree.Items.Add(mtrNode); 
    
                /*添加rfa文件夹目录*/
                var rfaFiles = Directory.GetFiles(FileDir+"/rfa", "*.rfa");
                TreeViewItem rfaNode = new TreeViewItem();
                rfaNode.Header = "族库";
    
                foreach (string fileName in rfaFiles)
                {
                    TreeViewItem item = new TreeViewItem();
                    item.Header = fileName.Substring((FileDir).Length +5);
                    rfaNode.Items.Add(item);
                }
                FileTree.Items.Add(rfaNode);
            }
  • 运行效果:WPF中TreeView添加子节点C#代码控制_第1张图片WPF中TreeView添加子节点C#代码控制_第2张图片

你可能感兴趣的:(WPF,C#)