比如我有一个记录,其属性包括:Name,Age,Birthday,School
我想用treeview中的treenode来保存在这条记录的所有属性。这样在调用其它事件时就可以读取到这些属性,而不用再读取数据库了。
可是我只想到treenode中的value或tag来存放这些属性,它们之间用"|"区分,然后下次要用时,利用string.split('|')来获取。但是感觉这种方法有点麻烦,所以想请教下大家有没有其它什么好点的办法?

解决方案 »

  1.   

    目前想到的有两个,一个是继承treenode类,增加你需要的几个属性
    另一个是保存在TAG属性中,不过不用用|分隔,你定义一个你这个数据的结构或者类,然后TAG存放这个类,用的时候显式转换一下就可以了。
      

  2.   

    好像name,text也可以用来保存数据吧?
    还有就是可以用唯一的标识比如id去过滤数据源datasource/datatable
    这样就相当于在数据源查询,而不用去连接数据库~
      

  3.   

    TAG是Object行的,你可以自定义一个类,保存在写数据,然后写在Tag中。
    public class UserInfo
    {
        private string name;
        public string Name
        {
            set {name = value;}
            get {return name;}
        }    private int Age;
        ..............................
    }绑定的时候:
    UserInfo ui = new UserInfo();
    ui.Name = "...";
    ui.Age = 20;
    ..........
    treeNode.Tag = ui;
    取出的时候:
    UserInfo ui = (UserInf)treeNode.Tag;
      

  4.   

    public class UserNode:TreeNode

        public UserNode(string name,int age,....)
        { 
         this.Name=name;this.Age=age;......        }    private string name; 
        public string Name 
        { 
            set {name = value;} 
            get {return name;} 
        }     private int Age; 
        .............................. 
    } 在使用的时候:
        nd=new UserNode("name",20,...) ;然后你在获取节点时,就可以取得你想要的信息了
      

  5.   

    TAG 属于 Object
    你传个对象(Name,Age,Birthday,School,.........)对象给tag 就可以了 
      

  6.   

    将该结构,Name,Age,Birthday,School ,定义成结构体,如果结果是现成的最好,然后,直接放结构体实例到NODE的Tag属性中,这是一种通用方式.适用于其它类型.
      

  7.   

    写个mode类付值后  给treenode.tag