2010-11-22 43 views
3

我有一个TreeViewItem。如果有的话,我想获得这个项目的父节点。Silverlight:确定父级TreeViewItem?

但是TreeViewItem.ParentTreeViewItem属性是内部的,因此无法访问。 没有理由将这个属性从开发者那里隐藏起来,然而,非常聪明的人决定这样做。

我该如何继续?是否有任何解决方法(对私人成员的反思在SL中不起作用)?

回答

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周期,因为隐藏只读属性:(