Noi*_*ich 1 c# wpf treeview xaml
我认为我的问题相当基本,但我找不到答案:
我有一个 TreeView,我不知道如何监视节点的选择。我在处理程序处为TreeView.SelectedItemChanged和设置了断点TreeViewItem.Expanded。当一个节点被展开时,我确实看到了TreeViewItem.Expanded处理程序在工作,但是当点击一个节点时,这些事件都不会被触发。
我究竟做错了什么?
谢谢。
树视图代码:
<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>
Run Code Online (Sandbox Code Playgroud)
编辑:
我已经尝试使用TreeViewItem.Selected,但它是相同的-当我在一个节点的名称点击没有反应,但是当我点击在扩展区域,无论是TreeViewItem.Selected和TreeViewItem.Selected被解雇。有什么解释吗?
你不应该TreeViewItem在你的DataTemplate. 将TreeViewItem被自动创建TreeView。TheDataTemplate定义了 的内容,而TreeViewItem不是它TreeViewItem本身。现在您有两个嵌套的TreeViewItems,这可能是它无法按预期工作的原因。试试这个:
<HierarchicalDataTemplate ItemsSource="{Binding Path=TreeNodes, Mode=TwoWay}" DataType="{x:Type TestExplorer:FolderTreeNode}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4557 次 |
| 最近记录: |