Как получить TreeViewItem из элемента HierarchicalDataTemplate? - PullRequest
31 голосов
/ 06 марта 2009

У меня есть TreeView, который использует HierarchicalDataTemplate для привязки своих данных.

Это выглядит так:

<TreeView x:Name="mainTreeList" ItemsSource="{Binding MyCollection}>
  <TreeView.Resources>
    <HierarchicalDataTemplate 
     DataType="{x:Type local:MyTreeViewItemViewModel}" 
     ItemsSource="{Binding Children}">
      <!-- code code code -->
    </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>

Теперь из выделенного кода, скажем, главного окна, я хочу получить текущий выбранный TreeViewItem. Однако, если я использую:

this.mainTreeList.SelectedItem;

Выбранный элемент имеет тип MyTreeViewItemViewModel. Но я хочу получить «родитель» или «связанный» TreeViewItem. Я не передаю это моему объекту TreeViewItemModel (даже не знаю как).

Как я могу это сделать?

Ответы [ 11 ]

0 голосов
/ 22 сентября 2009

Вам нужен TreeViewItem, потому что вы собираетесь изменить то, что отображается? Если это так, я бы порекомендовал использовать стиль, чтобы изменить способ отображения элемента, а не использовать выделенный код вместо прямой модификации TreeViewItem. Надеемся, что он будет чище.

...