1

您好,我已阅读Easy object binding to Treeview Node,但仍有未解决的问题。

如果一个对象与树节点标签属性相关联,如何从该树节点访问该对象成员/属性?


node1 = new TreeNode();
node1.tag = object1;
//ex:if object1 has public property valueA
//How to access valueA  from node1 ??
4

2 回答 2

1

也许您可以将其转换回 object1 类型...

var valueA = ((object1Type)node1.tag).valueA;
于 2010-06-07T04:12:14.550 回答
0
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 进行救援:

System.Reflection.PropertyInfo[] pis = treeNode.Tage.GetType().GetProperties();
foreach (var pi in pis) {
  theName = pi.Name;
}
于 2010-06-07T04:13:43.100 回答