Получить родительский элемент TreeViewItem в HierarchicalDataTemplate в WPF

Я объединяю два примера, найденных в Интернете. Один о растянутых стилях выделения и один о множественном выборе в древовидной структуре .

У меня все работает, за исключением отступов в древовидной структуре. Я мог бы дать весь свой код, но это не решило бы его.

Моя проблема заключается в следующем методе:

public static class TreeViewItemExtensions
{
    public static int GetDepth(this TreeViewItem item)
    {
        FrameworkElement elem = item;
        while (elem.Parent != null)
        {
            var tvi = elem.Parent as TreeViewItem;
            if (tvi != null)
                return tvi.GetDepth() + 1;
            elem = elem.Parent as FrameworkElement;
        }
        return 0;
    }
}

Этот метод пытается получить глубину treeviewItem в дереве. Проблема в следующем: elem.Parent всегда null . В результате получается глубина 0.

Я думаю, что это происходит, потому что я использую HierarchicalDataTemplate . Часть моего xaml выглядит следующим образом.



    
        

            
                
                    
                

                
                
            
        
    

XAML для моего стиля древовидного представления выглядит так:


Как я могу заставить HierarchicalDataTemplate заполнить свойство Parent ?

5
задан Community 23 May 2017 в 12:16
поделиться