WPF中动态创建TreeView。

主要实现的功能如下:

                                          1、动态添加节点的节点;

                                          2、对节点的操作;


1. 如果 TreeView 的 Items 绑定了一个源集合, 那麼对集合增减,  wpf 会自动处理, 更新显示(如果集合实现了INotifyCollectionChanged 介面的话).

例如 TreeView 的 Items 绑定了一个 ObservableCollection<string> 的集合, 则 对这个集合使用 Add/Remove 等方法时, wpf 会自动更新 TreeView 的显示.

2. 如果 TreeView 没有绑定集合, 则 它的 Items 可以添加任何元素. 所添加的元素自动以 TreeViewItem 作为容器来承载, 根据相应的 DataTemplate 或者默认的方式,显示到 TreeView 中.

eg. 下面是一个没有任何 Item 的 TreeView, 你可以在代码中动态增减:

<TreeView x:Name="myTV">

--------------

先增加一些节点:

myTV.Items.Add("I'm the rootNode"); // 可以是任何类型, 这里是 string

DockPanel dp= new DockPanel();

TextBlock tb = new TextBlock();

tb.Text = "I'm the child node";

tb.VerticalAlignment = VerticalAlignment.Center;

Image img = new Image();

img.Stretch= Stretch.None;

img.Source= new BitmapImage(new Uri(@"C:\wpf.bmp", UriKind.Absolute));

dp.Children.Add(img);

dp.Children.Add(tb);

(myTV.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem).Items.Add(dp);

--------------------

然后修改这些节点:

TextBox t = new TextBox();

t.Text = myTV.Items[0] as string;

myTV.Items[0] = t;

((((myTV.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem).Items[0]) as DockPanel).Children[1] as TextBlock).Text = "an image sits on my left side";


        private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
        {         
            
            TreeView item = e.OriginalSource as TreeView;


        TreeViewItem selectitem = (TreeViewItem)niceGay.SelectedItem;
            string itemstr = selectitem.Header.ToString();


            MessageBox.Show(itemstr);
        }

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF TreeView是一种在WPF(Windows Presentation Foundation)应用程序使用的控件,用于以分层结构显示数据。它类似于树形结构,其每个节点可以有零个或多个子节点TreeView由一系列TreeNode组成,每个TreeNode代表一个节点。每个TreeNode可以包含一个或多个子节点,并且可以通过展开和折叠来显示或隐藏这些子节点。每个节点可以具有自定义的显示内容,通常是文本,也可以是任何WPF元素。 使用WPF TreeView,您可以创建具有层次结构的导航菜单、文件资源管理器、组织架构图等应用程序。您可以自定义节点的外观和行为,以及处理节点的选择和展开事件。 要使用WPF TreeView,您需要在XAML声明TreeView和TreeNode。然后,您可以通过添加和删除TreeNode来动态构建树状结构,并使用数据绑定来显示和编辑树上的数据。 以下是一个简单的示例,演示如何在XAML创建一个简单的TreeView: ```xaml <TreeView> <TreeViewItem Header="Root"> <TreeViewItem Header="Child 1" /> <TreeViewItem Header="Child 2" /> <TreeViewItem Header="Child 3"> <TreeViewItem Header="Grandchild 1" /> <TreeViewItem Header="Grandchild 2" /> </TreeViewItem> </TreeViewItem> </TreeView> ``` 这将创建一个具有三个一级节点的简单树状结构。您可以通过展开和折叠节点来显示或隐藏子节点。 希望这可以帮助您了解WPF TreeView的基本概念和用法。如果您有更具体的问题,请随时提问!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值