winform 里加载了一个xml文件,并把各个xml节点转化成有层次的对象实例,各个对象都有一个name属性,在把这个属性的值绑定到一个treeview上怎样通过点击treeview的节点得到相应的对象啊?求思路!!!分的不吝啬!!!

解决方案 »

  1.   

    对象以name为Key放到HashTable里面,点节点得到其name,然后到HashTable里取得相应的对象
      

  2.   

    各个对象有没有唯一的标志呢,
    如果以name作为kye的话,name不是唯一的怎么办呢?
      

  3.   

    绑定时
    TreeNode.Tag  = 你的类
    选择时
    你的类  yourclass = TreeNode.Tag
      

  4.   

    对象以name为Key放到HashTable里面,点节点得到其name,然后到HashTable里取得相应的对象
    ----------------
    up
      

  5.   

    如果name不唯一,可以用TreeView节点的Key作为Key
      

  6.   

    这里提供2种思路,不好不要怪我:
    1、直接保存xml或者对象树也可以,我只说xml这种。用xml的tagname+name作为tag,点击某个node得到tag,然后用selectNodes("//" + tagname)找到这个节点,将这个节点反射为对象就搞定了这一步。
    2、扩展TreeNode,自己定义一个VO类扩展自TreeNode,增加一个或者多个属性,这个就看你怎么应用了。可以把该节点对应的类、xml等等都放到属性中。创建treeview的时候就直接使用你的类。在点击节点的时候,用 node is 你的类名(假定为NodeEx),来判断。然后
    转化为你的类名:
    if (node is NodeEx)
    {
      NodeEx ex = node as NodeEx;
      // 下面写逻辑
    }
      

  7.   

    楼上的说了不少了,那就是用类似Hashtable之类的堆栈或队列来保存对象,然后当需要对象时,通过key之类的关键字查找对象,对树或数据库进行更新。