简体   繁体   English

WPF C# 绑定多个treeViewItems isSelected到tabItem isSelected

[英]WPF C# Bind multiple treeViewItems isSelected to tabItem isSelected

Building on the Q&A here: WPF C# - Bind tab selection to treeView selection基于此处的问答: WPF C# - 将选项卡选择绑定到 treeView 选择

Is it possible to bind the treeViewItem and all of its children and potential future children to the same tabItem selection?是否可以将treeViewItem及其所有children项和潜在的未来children项绑定到同一个tabItem选择?

<TreeViewItem Header="Letters" x:Name="tab1">
   <TreeViewItem Header="a" x:Name="tab1_1"/>
   <TreeViewItem Header="b" x:Name="tab1_2"/>
   <TreeViewItem Header="c" x:Name="tab1_3"/>
   <TreeViewItem Header="d" x:Name="tab1_4"/>
   <TreeViewItem Header="e" x:Name="tab1_5"/>
   <TreeViewItem Header="f" x:Name="tab1_6"/>
</TreeViewItem>

Currently it will deselect the tab when clicking on a child node with this code:目前,当使用以下代码单击子节点时,它将取消选择选项卡:

<TabItem x:Name="tabLetters"
    IsSelected="{Binding ElementName=tab1, Path=IsSelected}">
</TabItem>

using SelectedValue and SelectedValuePath.使用 SelectedValue 和 SelectedValuePath。

The TreeViewItem child and parent must have the same Uid. TreeViewItem 子项和父项必须具有相同的 Uid。

<Window x:Class="WpfApp1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel>
        <TreeView x:Name="treeView" Height="200" SelectedValuePath="Uid">
        
            <TreeViewItem Header="Letters-1" x:Name="tab1" Uid="Letters-1">
                <TreeViewItem Header="a" Uid="Letters-1"/>
                <TreeViewItem Header="b" Uid="Letters-1"/>
                <TreeViewItem Header="c" Uid="Letters-1"/>
            </TreeViewItem>
        
            <TreeViewItem Header="Letters-2" x:Name="tab2" Uid="Letters-2">
                <TreeViewItem Header="d" Uid="Letters-2"/>
                <TreeViewItem Header="e" Uid="Letters-2"/>
                <TreeViewItem Header="f" Uid="Letters-2"/>
            </TreeViewItem>
        
            <TreeViewItem Header="Letters-3" x:Name="tab3" Uid="Letters-3">
                <TreeViewItem Header="g" Uid="Letters-3"/>
                <TreeViewItem Header="h" Uid="Letters-3"/>
                <TreeViewItem Header="i" Uid="Letters-3"/>
            </TreeViewItem>
        
        </TreeView>
    
        <TabControl x:Name="tabControl" Height="100"
                    SelectedValuePath="Header"
                    SelectedValue="{Binding ElementName=treeView, Path=SelectedValue, Mode=OneWay}">
        
            <TabItem Header="Letters-1"/>

            <TabItem Header="Letters-2"/>

            <TabItem Header="Letters-3"/>

        </TabControl>
    </StackPanel>
</Window>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM