Как найти элемент underyling, связанный с TreeViewItem - PullRequest
1 голос
/ 28 марта 2012

Я пытаюсь реализовать перетаскивание для элемента управления в виде дерева, который привязывается к пользовательским элементам:

<TreeView ItemsSource="{Binding FirstGeneration}">
  <TreeView.Resources>
     <HierarchicalDataTemplate DataType="{x:Type NavigationTreeElement}" 
                               ItemsSource="{Binding Children}">
       <StackPanel Orientation="Horizontal" Margin="1">
          <Image Source="open-16x16.png" />
          <TextBlock Text="{Binding Path=DisplayName}" />
       </StackPanel>
     </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>

С базовым классом:

 public class NavigationElement
 {
     public string DisplayName { get; set; }
     public ObservableCollection<NavigationElement> Children { get; set; }
 }

У меня проблема с привязкой визуализированного TreeViewItem к базовому элементу NavigationElement. Если я нахожу TreeViewItem, что мышь над, как таковой:

    private static TreeViewItem GetNearestContainer(UIElement element)
    {
        // Walk up the element tree to the nearest tree view item.
        var container = element as TreeViewItem;
        while ((container == null) && (element != null))
        {
            element = VisualTreeHelper.GetParent(element) as UIElement;
            container = element as TreeViewItem;
        }
        return container;
    }

Как связать этот TreeViewItem с базовым элементом NavigationElement?

1 Ответ

1 голос
/ 28 марта 2012

Я думаю, что это в container.Header, как это ни странно может показаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...