Доступ к свойствам объекта из триода, который с ним связан? - PullRequest
1 голос
/ 07 июня 2010

Алло, Я прочитал Простая привязка объекта к узлу Treeview , но все еще есть вопрос без ответа.

если объект связан со свойством тега treenode, как получить доступ к элементам / свойствам этого объекта из этого treenode?


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

Ответы [ 2 ]

1 голос
/ 07 июня 2010

Может быть, вы можете привести его обратно к типу object1 ...

var valueA = ((object1Type)node1.tag).valueA;
0 голосов
/ 07 июня 2010
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;
}
...