Wpf 用扩展器替换Treeview+
我正在尝试从树视图中删除节点符号+-并用Expander替换它们。以下是我的Xaml: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="
<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:这不是这个网站的工作方式,首先,在问题不再是一个问题之前,你不会编辑它,其次,这不是一个论坛或聊天,我不会告诉你这个问题。获取基础知识,查看,获取,尝试了解它如何协同工作,需要哪些元素和绑定,并将这些知识转移到您自己的需求中,使用您的大脑。谢谢。但是,选择更改不起作用,我认为鼠标操作不起作用。谢谢。但是,选择更改不起作用,我认为鼠标操作不起作用。