WPF TreeView - выбор и расширение узлов - PullRequest
1 голос
/ 27 июля 2011

Я думаю, что мой вопрос довольно простой, но я не могу найти ответ:
У меня есть TreeView, и я не могу понять, как контролировать выбор узлов. У меня есть точки останова на обработчиках для TreeView.SelectedItemChanged и TreeViewItem.Expanded. Когда узел раскрывается, я вижу обработчик TreeViewItem.Expanded в работе, но при нажатии на узел ни одно из этих событий не запускается.
Что я делаю не так?

Спасибо.

Код TreeView:

    <TreeView Name="TestsTree" Height="Auto" MinHeight="50" ItemsSource="{Binding Path=TreeNodes, Mode=TwoWay}" TreeViewItem.Expanded="TestsTreeExpanded" TreeView.SelectedItemChanged="TestsTreeSelectedItemChanged">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Path=TreeNodes, Mode=TwoWay}" DataType="{x:Type TestExplorer:FolderTreeNode}">
                <TreeViewItem Header="{Binding Name}"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
        </TreeView>

Изменить:
Я пытался использовать TreeViewItem.Selected, но это то же самое - когда я нажимаю на имя узла, никакой реакции не происходит, хотя, когда я нажимаю на область расширения, оба TreeViewItem.Selected и TreeViewItem.Selected запускаются. Любое объяснение?

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Вы не должны ставить TreeViewItem в свой DataTemplate. TreeViewItem создается автоматически TreeView. DataTemplate определяет содержимое TreeViewItem, а не сам TreeViewItem. Теперь у вас есть два вложенных TreeViewItems, поэтому, вероятно, он не работает должным образом. Попробуйте вместо этого:

        <HierarchicalDataTemplate ItemsSource="{Binding Path=TreeNodes, Mode=TwoWay}" DataType="{x:Type TestExplorer:FolderTreeNode}">
            <TextBlock Text="{Binding Name}"/>
        </HierarchicalDataTemplate>
1 голос
/ 27 июля 2011

Попробуйте TreeViewItem.Selected Событие вместо TreeView.SelectedItemChanged

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