代码之家  ›  专栏  ›  技术社区  ›  mhd

从与之关联的树节点访问对象属性?

  •  1
  • mhd  · 技术社区  · 16 年前

    你好, 我读过 Easy object binding to Treeview Node , 但仍有未解之谜。

    如果一个对象与treenode标记属性相关联,那么如何从该treenode访问该对象的成员/属性?

    
    node1 = new TreeNode();
    node1.tag = object1;
    //ex:if object1 has public property valueA
    //How to access valueA  from node1 ??
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   Leniel Maccaferri    16 年前

    也许你可以把它转换回object1类型。。。

    var valueA = ((object1Type)node1.tag).valueA;
    
        2
  •  0
  •   Jon Watte    16 年前
    MyClass c = treeNode.Tag as MyClass;
    theValue = c.TheProperty;
    

    如果您不知道所讨论对象的类型,则可以使用System.Reflection:

    System.Reflection.PropertyInfo pi = treeNode.Tag.GetType().GetProperty("SomeName");
    theValue = pi.GetValue(treeNode.Tag, null);
    

    System.Reflection.PropertyInfo[] pis = treeNode.Tage.GetType().GetProperties();
    foreach (var pi in pis) {
      theName = pi.Name;
    }