Wpf 用扩展器替换Treeview+

Wpf 用扩展器替换Treeview+,wpf,treeview,wpf-controls,Wpf,Treeview,Wpf Controls,我正在尝试从树视图中删除节点符号+-并用Expander替换它们。以下是我的Xaml: <TreeView.Resources> <HierarchicalDataTemplate ItemsSource="{Binding Disks}" DataType="{x:Type local1:GenSet}"> <Expander Header="{Binding Genre}" x:Name="

我正在尝试从树视图中删除节点符号+-并用Expander替换它们。以下是我的Xaml:

        <TreeView.Resources>
            <HierarchicalDataTemplate ItemsSource="{Binding Disks}" DataType="{x:Type local1:GenSet}">
                <Expander Header="{Binding Genre}" x:Name="exp" IsExpanded="False" >
                </Expander>
                <HierarchicalDataTemplate.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="True">
                        <Setter TargetName="exp" Property="IsExpanded"  Value="True"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}" Value="False">
                        <Setter TargetName="exp" Property="IsExpanded"  Value="False"/>
                    </DataTrigger>
                </HierarchicalDataTemplate.Triggers>

                <!--<TextBlock Text="{Binding Genre}"/>-->
            </HierarchicalDataTemplate>
            <DataTemplate DataType="{x:Type local1:DiskPrime}">
                <TextBlock Text="{Binding Namee}"/>
            </DataTemplate>
        </TreeView.Resources>
    </TreeView>

我需要删除+-图标,让扩展器工作。你能告诉我怎么做吗。谢谢。

在ItemContainerStyle中为TreeViewItems设置一个新模板。

在ItemContainerStyle中为TreeViewItems设置一个新模板。

使用并修改它以满足您的需要

     <TreeView>
         <TreeView.Resources> 
           <Style TargetType="TreeViewItem">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Expander Header="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Header}">
                                <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Items[0]}"/>
                            </Expander>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TreeView.Resources>
        <TreeViewItem Header="Test 1">
            <TreeViewItem Header="Child 1"><TextBox Text="Hello"></TextBox></TreeViewItem>
        </TreeViewItem>
        <TreeViewItem Header="Test 2"/>
        <TreeViewItem Header="Test 3"/>
     </TreeView>

发挥这一点,并修改它,以满足您的需要

     <TreeView>
         <TreeView.Resources> 
           <Style TargetType="TreeViewItem">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <Expander Header="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Header}">
                                <ContentPresenter Content="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=Items[0]}"/>
                            </Expander>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </TreeView.Resources>
        <TreeViewItem Header="Test 1">
            <TreeViewItem Header="Child 1"><TextBox Text="Hello"></TextBox></TreeViewItem>
        </TreeViewItem>
        <TreeViewItem Header="Test 2"/>
        <TreeViewItem Header="Test 3"/>
     </TreeView>

我是一个新手,你能说得更详细一点吗,或者用一个例子或者简单的方法来理解它。谢谢。做了一些改进,你能告诉我下一步做什么吗。@surpavan:你的模板仍然乱七八糟,DataTemplate不应该包含任何扩展器,在ControlTemplate中,标题内容演示者的边框应该在expander内。Header,还添加一个ItemsPresenter作为Expander。子项目的内容。谢谢,我发布了有问题的编辑过的xaml,你能告诉我下一步怎么做吗。@surpavan:这不是这个网站的工作方式,首先,在问题不再是一个问题之前,你不会编辑它,其次,这不是一个论坛或聊天,我不会告诉你这个问题。获取基础知识,查看,获取,尝试了解它是如何协同工作的,需要哪些元素和绑定,并将这些知识转移到您自己的需求中,使用您的大脑。我是一个新手,您是否可以更详细一点,或者指向一个示例或简单的方式来理解它。谢谢。做了一些改进,你能告诉我下一步做什么吗。@surpavan:你的模板仍然乱七八糟,DataTemplate不应该包含任何扩展器,在ControlTemplate中,标题内容演示者的边框应该在expander内。Header,还添加一个ItemsPresenter作为Expander。子项目的内容。谢谢,我发布了有问题的编辑过的xaml,你能告诉我下一步怎么做吗。@surpavan:这不是这个网站的工作方式,首先,在问题不再是一个问题之前,你不会编辑它,其次,这不是一个论坛或聊天,我不会告诉你这个问题。获取基础知识,查看,获取,尝试了解它如何协同工作,需要哪些元素和绑定,并将这些知识转移到您自己的需求中,使用您的大脑。谢谢。但是,选择更改不起作用,我认为鼠标操作不起作用。谢谢。但是,选择更改不起作用,我认为鼠标操作不起作用。