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

发布于 2024-09-04 03:15:20 字数 345 浏览 5 评论 0原文

你好, 我已阅读 轻松对象绑定到 Treeview 节点, 但仍有未解答的问题。

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


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

Hallo,
I have read Easy object binding to Treeview Node,
but still have unanswered question.

if an object is associated with treenode tag property, how to access that object members/properties from that treenode ?


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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

喜你已久 2024-09-11 03:15:21

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

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

Maybe you can cast it back to the object1 type...

var valueA = ((object1Type)node1.tag).valueA;
迷乱花海 2024-09-11 03:15:21
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;
}
MyClass c = treeNode.Tag as MyClass;
theValue = c.TheProperty;

If you don't know the type of the object in question, then you can use System.Reflection:

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

Finally, if you want to know the names of the properties, again System.Reflection to the rescue:

System.Reflection.PropertyInfo[] pis = treeNode.Tage.GetType().GetProperties();
foreach (var pi in pis) {
  theName = pi.Name;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文