喂,
我看过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 ??
答案 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;
}