none
TreeView在选中了一个节点之后,点击任意层级高于此节点的节点前的箭头。该节点收起的同时会被选中,之前选中节点会失去选中状态。如何能在这种情况下,保持最开始选中的节点的选中状态呢? RRS feed

全部回复

  • Hello,

    根据你的描述,你是想实现这样的功能: 假如存在一个Treeview,我首先选中一个节点, 然后再点击层级比节点高的节点的前面箭头来进行收缩treeview, 你想实现层级高的这个节点不要被选中, 保持原来的节点选中状态。

    但是我有一个疑问, 因为Treeview已经收缩了, 保持之前的节点选中状态, 我们也是看不见的, 我觉得没有什么意义, 并且微软在Treeview控件中也是限制这种行为的。 所以我可能实现让层级高的节点不被选中。

     <TreeView x:Name="treeview1" SelectedItemChanged="treeview1_SelectedItemChanged">
                <TreeViewItem
                    Collapsed="TreeViewItem_Collapsed"
                    Header="Level 1"
                    IsExpanded="True">
                    <TreeViewItem Header="Level 2.1" />
                    <TreeViewItem
                        Collapsed="TreeViewItem_Collapsed"
                        Header="Level 2.2"
                        IsExpanded="True">
                        <TreeViewItem Header="Level 3.1">
                            <TreeViewItem Header="Level 3.1.1" />
                        </TreeViewItem>
                        <TreeViewItem Header="Level 3.2" />
                    </TreeViewItem>
                    <TreeViewItem Header="Level 2.3" />
                </TreeViewItem>
            </TreeView>
     public partial class Window8 : Window
        {
            TreeView tv;
            TreeViewItem tvi;     
            public Window8()
            {
                InitializeComponent();
            }
    
            private void TreeViewItem_Collapsed(object sender, RoutedEventArgs e)
            {           
                tvi.IsSelected = false;           
            }
    
            private void treeview1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
            {
                tv = (TreeView)sender;
                tvi =(TreeViewItem)tv.SelectedItem;         
            }
        }

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年12月19日 7:16
    版主