我有TreeViewItem
。我想得到这个项目的父节点,如果有的话。
但是TreeViewItem.ParentTreeViewItem
属性是内部的,因此无法访问。
没有理由向开发人员隐藏这个属性,但是,非常聪明的人决定这样做。
我该怎么办?是否有任何解决方法(私人成员的反思在SL中不起作用)?
答案 0 :(得分:3)
发现了一种丑陋却又有效的方式:
static TreeViewItem GetParentItem(TreeViewItem item)
{
for (var i = VisualTreeHelper.GetParent(item); i != null; i = VisualTreeHelper.GetParent(i))
if (i is TreeViewItem)
return (TreeViewItem)i;
return null;
}
因为隐藏的只读属性而浪费了很多CPU周期:(