WPF TreeView:隐藏所有叶节点的展开符号
如何在WPF树视图中隐藏叶节点的expand/collpse符号 换句话说:如何使叶节点自动展开 有没有办法用XAML实现这一点WPF TreeView:隐藏所有叶节点的展开符号,wpf,Wpf,如何在WPF树视图中隐藏叶节点的expand/collpse符号 换句话说:如何使叶节点自动展开 有没有办法用XAML实现这一点 谢谢,我不知道纯XAML解决方案,但是您可以绑定treevieItem的IsExpanded属性,并将叶节点上的此属性默认设置为true(您不必在其他节点上拥有此属性) <Style TargetType="controls:TreeViewItem"> <Setter Property="IsExpanded" Value="{Binding
谢谢,我不知道纯XAML解决方案,但是您可以绑定
treevieItem
的IsExpanded
属性,并将叶节点上的此属性默认设置为true(您不必在其他节点上拥有此属性)
<Style TargetType="controls:TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"></Setter>
</Style>
将TreeViewItems绑定到ObservableCollection,并将ObservableCollection保留为空。这样,扩展/折叠符号不会显示,因为UI知道没有可扩展的内容。以下是我的一些代码中的相关部分: XAML:
视图模型:
ObservableCollection<ObjectBaseViewModel> _children;
public ObservableCollection<ObjectBaseViewModel> Children
{
get
{
if (_children == null)
_children = new ObservableCollection<ViewModel>();
return _children;
}
}
observedcollection\u儿童;
公众观察收集儿童
{
得到
{
if(_children==null)
_children=新的ObservableCollection();
返回儿童;
}
}
与其他答案类似,展开您可以使用的所有节点
<TreeView >
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True" />
</Style>
</TreeView.ItemContainerStyle>
这将使所有TreeViewItem自动展开。但是,您仍然会看到展开/折叠切换按钮。要摆脱该按钮,您必须像这样重新设置TreeViewItem的模板
<TreeView ...
ItemContainerStyle="{StaticResource TreeViewItemExpandedStyle}">
和样式(差不多是Xaml)
首先设置IsExpanded为true
<Style x:Key="{x:Type TreeViewItem}"
TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded"
Value="True" />
然后隐藏扩展器
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<ControlTemplate.Triggers>
<Trigger Property="HasItems"
Value="false">
<Setter TargetName="Expander"
Property="Visibility"
Value="Hidden" />
</Trigger>
<Trigger Property="HasItems"
Value="true">
<Setter TargetName="Expander"
Property="Visibility"
Value="Hidden" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
使用treeview而不是带有rowdetails的datagrid的一个很好的理由是,向上和向下箭头键可以无缝地从展开的细节遍历到标题细节
<Style x:Key="{x:Type TreeViewItem}"
TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded"
Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<ControlTemplate.Triggers>
<Trigger Property="HasItems"
Value="false">
<Setter TargetName="Expander"
Property="Visibility"
Value="Hidden" />
</Trigger>
<Trigger Property="HasItems"
Value="true">
<Setter TargetName="Expander"
Property="Visibility"
Value="Hidden" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>