Как узнать уровень в иерархии выбранного элемента в TreeView?

Имеется например список дерево:
- Уровень 1
   - Уровень 2
   - Уровень 2
      - Уровень 3
- Уровень 1
   - Уровень 2
      - Уровень 3
      - Уровень 3
   - Уровень 2
- Уровень 1
   - Уровень 2


Неважно какие там данные, но как получить уровень иерархии текущего выбранного элемента в списке дерева?
  • Вопрос задан
  • 371 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Sumor
Когда вы программируете на WPF подразумевается, что визуальная часть является отражением вашего представления данных. Поэтому уровень иерархии выбранный элемент должен находить не среди элементов TreeViewItem, а среди родителей выбранного элемента в соответствии с моделью представления данных.
Пример:
class A
{
 public string Name{get;set;}
 public A Parent {get;set;}
 public IEnumerable<A> Children
 {
  get
  {
    return AllItemsOfA.Select(a => a.Parent == this);
  }
 }
 public int Level()
 {
  int level = 0;
  var current = Parent;
  while(current != null)
  {
    current = current.Parent;
    level ++;
  }
  return level;
 }
}

Добавив коллекцию таких элементов в TreeView вы у выбранного элемента получите нужный вам уровень иерархии.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы