从与之关联的treenode访问对象属性?

时间:2010-06-07 04:01:10

标签: c# treenode

喂, 我看过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 个答案:

答案 0 :(得分:1)

也许你可以把它强制转换为object1类型......

var valueA = ((object1Type)node1.tag).valueA;

答案 1 :(得分: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;
}