您好,我已阅读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 ??
您好,我已阅读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 ??
也许您可以将其转换回 object1 类型...
var valueA = ((object1Type)node1.tag).valueA;
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;
}