试一下treeview接收什么样的数据类型

原创 2017年02月15日 15:17:59

界面就一个treeview

<Window x:Class="treeDemo01.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" WindowStartupLocation="CenterScreen">
    <Grid>
        <TreeView x:Name="tr_1">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding }">
                    <TextBlock Text="{Binding Name}"/>
                    </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
      </TreeView>
    </Grid>
</Window>

发现这个ItemsSource=”{Binding }”写不写都一样,不知道为什么。
然后建立一个Book.cs类

    public class Book {

        public string  Name { get; set; }

    }
然后我先主窗口这样写,先不利用Book 类
 List<string> Book;
    public MainWindow()
    {
        InitializeComponent();
        Book = new List<string>();
       Book.Add("你好");
        tr_1.ItemsSource = Book;
 }
很奇怪,出来的是一个空目录,至少能出来一个目录,说明treeview是接收list类型的,也就是集合吧。因为 List<string>里面没有Name属性,所以TextBlock 是出来了,但是没有值。在继续改
 List<Book> Book;
    public MainWindow()
    {
        InitializeComponent();
         Book = new List<Book>();
         Book  bk = new Book();
         bk.Name = "你好";
         Book.Add(bk);
        tr_1.ItemsSource = Book;

    }
我这里就建立10数据吧,一会测试下子层是怎么样联系的。
    List<Book> Book;
    public MainWindow()
    {
        InitializeComponent();
        Book = new List<Book>();
  for (int i = 0; i < 10;i++ )
        {
 Book.Add(new Book() { Name ="第" + i + "个父节点"});
        }
 tr_1.ItemsSource = Book;
}

这里写图片描述
当然这样是远远不够的,因为子层还没有。所以要对Book这个类进行改造了。在Book类下在嵌套一个List。有点搞脑子啊。

 public class Book {

  public string  Name { get; set; }
  public List<Book> Children { get; set; }
 public Book(){
       Children=new List<Book>();
       }
    }

然后主界面进行修改

 public MainWindow()
        {
            InitializeComponent();
            Book = new List<Book>();

  for (int i = 0; i < 10;i++ )
            {
                Book bk = new Book();
                bk.Name = "第" + i + "个父节点";
                bk.Children.Add(new Book { Name="我是"+i});
                Book.Add(bk);
            }
 tr_1.ItemsSource = Book;
        }
    }

然后发现显示的还是和上面的一样。这个时候就想到了
bind绑定

<HierarchicalDataTemplate ItemsSource="{Binding }">

还是空着的,那么填什么呢Book还是Children。

<HierarchicalDataTemplate ItemsSource="{Binding Children }">

如要显示子节点就绑定最底层的对象,因为Name是从最底层的属性开始找,我是这么理解的。
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

试一下treeview接收什么样的数据类型

界面就一个treeview
  • vipzjh
  • vipzjh
  • 2017年02月15日 15:17
  • 395

java数据类型总结

有其他语言基础的这里不再重复累赘,就记录一些java独特的地方 一、java的数据类型 类型 二进制位数 默认值 对应的封装类 byte 8 0 Byte short 2 0 Sh...
  • weixin_37730482
  • weixin_37730482
  • 2017年04月05日 18:22
  • 256

java中的四类八种数据类型

java基本数据类型就8种,记住就好了。除了这些都是引用型的了。 java四类八种基本数据类型第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻...
  • wanghui20091129
  • wanghui20091129
  • 2010年01月01日 07:39
  • 5629

Hadoop自定义数据类型和输入格式

Hadoop自定义数据类型和输入格式 一,自定义一个数据类型:User类 该类实现WritableComparable接口,并且带三个属性:name,sex,age 重写其...
  • young_so_nice
  • young_so_nice
  • 2016年05月03日 19:47
  • 1079

java 四大类八种数据类型

第一类:逻辑型boolean 1.boolean类型只存在true(真),false(假)两种形式 列:boolean a=true; boolean b=false; 第二类:文本型char 字符常...
  • qq_29170981
  • qq_29170981
  • 2017年11月22日 21:53
  • 203

【JAVA】5、Java数据类型的划分及8种基本数据类型

本篇介绍Java数据类型的划分及8种基本数据类型
  • omoiato
  • omoiato
  • 2016年02月11日 10:14
  • 2378

认清基本数据类型和Qt串口通信数据类型转换

1、C语言基本数据类型      在C语言中,仅有4种基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等),所有其他的类型都是从这4种基本类型的某种组合派生而来。      整型包括char...
  • zbw1185
  • zbw1185
  • 2016年12月29日 19:27
  • 1243

试一下。

  • u013558526
  • u013558526
  • 2014年01月25日 18:09
  • 282

Java基本数据类型面试

在Java基本数据类型有8中,boolean、byte、short、int、long、char、float、double。每一种数据类型都有与其对应的对象类 1、首先先说明一下基本数据类型占用的字节数...
  • u010539271
  • u010539271
  • 2017年04月08日 14:53
  • 260

Java9种基本数据类型分析

九种基本数据类型的字节大小和封装类 基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte s...
  • Java_wdl
  • Java_wdl
  • 2017年08月11日 16:54
  • 163
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:试一下treeview接收什么样的数据类型
举报原因:
原因补充:

(最多只允许输入30个字)