• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

WPFTreeView的展开、数据绑定和数据更新

武飞扬头像
大浪淘沙胡
帮助1

1、修改MainWindow.xaml文件

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp"
        xmlns:lib="clr-namespace:WpfCustomControlLibrary;assembly=WpfCustomControlLibrary"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <StackPanel>
        <lib:CustomControl1 Content="图文按钮" Icon="/Images/Select.png" Margin="10" Click="CustomControl1_Click"/>
        <TreeView Name="treeView">
            <!--默认展开所有节点-->
            <TreeView.ItemContainerStyle>
                <Style TargetType="TreeViewItem">
                    <Setter Property="IsExpanded" Value="True"/>
                </Style>
            </TreeView.ItemContainerStyle>
            <!--绑定数据源-->
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name}"/>
                    </StackPanel>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>
    </StackPanel>
</Window>
学新通

2、创建TreeNode

public class TreeNode
    {
        public string Name { get; set; }
        public IList<TreeNode> Children { get; set; }
    }

3、修改MainWindow.xaml.cs文件

/// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            TreeDemo();
        }
        private void TreeDemo()
        {
            TreeNode treeNode0 = new TreeNode()
            {
                Name = "Project1",
                Children = new List<TreeNode>()
                {
                    new TreeNode()
                    {
                        Name="Device11",
                        Children=new List<TreeNode>()
                        {
                            new TreeNode(){Name="Test111"},
                            new TreeNode(){Name="Test112"}
                        }
                    },
                    new TreeNode(){Name="Device12"}
                }
            };
            TreeNode treeNode1 = new TreeNode()
            {
                Name = "Project2",
                Children = new List<TreeNode>()
                {
                    new TreeNode()
                    {
                        Name="Device21",
                        Children=new List<TreeNode>()
                        {
                            new TreeNode(){Name="Test211"},
                            new TreeNode(){Name="Test212"}
                        }
                    },
                    new TreeNode(){Name="Device22"}
                }
            };
            List<TreeNode> list = new List<TreeNode>() { treeNode0, treeNode1 };
            treeView.ItemsSource = list;
        }

        private void CustomControl1_Click(object sender, RoutedEventArgs e)
        {
            TreeNode treeNode0 = new TreeNode()
            {
                Name = "项目1",
                Children = new List<TreeNode>()
                {
                    new TreeNode()
                    {
                        Name="设备11",
                        Children=new List<TreeNode>()
                        {
                            new TreeNode(){Name="测试111"},
                            new TreeNode(){Name="测试112"}
                        }
                    },
                    new TreeNode(){Name="设备12"}
                }
            };
            TreeNode treeNode1 = new TreeNode()
            {
                Name = "项目2",
                Children = new List<TreeNode>()
                {
                    new TreeNode()
                    {
                        Name="设备21",
                        Children=new List<TreeNode>()
                        {
                            new TreeNode(){Name="测试211"},
                            new TreeNode(){Name="测试212"}
                        }
                    },
                    new TreeNode(){Name="设备22"}
                }
            };
            List<TreeNode> list = new List<TreeNode>() { treeNode0, treeNode1 };
            treeView.ItemsSource = list;
        }
    }
学新通

4、运行效果
学新通
点击按钮
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfkcbj
系列文章
更多 icon
同类精品
更多 icon
继续加载