如何更改在WPF TreeView中处理选择的方式

时间:2011-08-19 10:45:53

标签: c# .net wpf treeview

当我自动删除当前从TreeView中选择的项目时,父项被选中。我想改变这种行为,以便选择上一个或下一个孩子。我真的不知道从哪里开始...

关于如何实现这一点的任何想法都会很棒!

感谢。

2 个答案:

答案 0 :(得分:1)

您可以通过在树视图节点的datacontext类或模型中引入IsSelected等属性来设置SelectedItem。

假设您正在将TreeViewItemModel类的层次结构绑定到TreeView,您需要执行以下操作

  1. IsSelected中添加可写TreeViewItemModel属性。请务必在设置工具IsSelected

  2. 中提出属性更改通知
  3. 在TreeView资源中引入它......

    <TreeView.Resources>
       <Style TargetType="{x:Type TreeViewItem}">
          <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
       </Style>
    </TreeView.Resources>
    
  4. 删除节点后,将下一个或上一个树视图子项的TreeViewItemModel个对象IsSelected设置为true。

  5. 如果有帮助,请告诉我。

答案 1 :(得分:0)

TreeView具有Items属性,类型为ItemCollectionThis type有一些好的事件,比如CollectionChanged或CurrentChanged。也许你应该这样做?