Wpf 仅扩展一个节点
我正在使用一个按类别分组的扩展器,默认情况下只扩展某些类别。也就是说,我想在为用户显示窗口之前展开一些类别。我只找到了默认情况下如何折叠/展开所有类别 有没有关于如何做到这一点的建议 编辑: xaml文件的代码段:Wpf 仅扩展一个节点,wpf,xaml,Wpf,Xaml,我正在使用一个按类别分组的扩展器,默认情况下只扩展某些类别。也就是说,我想在为用户显示窗口之前展开一些类别。我只找到了默认情况下如何折叠/展开所有类别 有没有关于如何做到这一点的建议 编辑: xaml文件的代码段: <Expander IsExpanded="False"> <Expander.Header> <DockPanel> <TextBlock Grid.Column="2" Text="{Binding Path=Name}" /
<Expander IsExpanded="False">
<Expander.Header>
<DockPanel>
<TextBlock Grid.Column="2" Text="{Binding Path=Name}" />
</DockPanel>
</Expander.Header>
</Expander>
DockPanel可能不是必需的 您可以选择使用事件扩展某些类别。 如果这是您的扩展器:
<Expander Loaded="OnLoad">
<Expander.Header>
<TextBlock Text="RightCategory" />
</Expander.Header>
</Expander>
实际上,加载的
通常是元素初始化序列中引发的最后一个事件。它将始终在初始化后引发
;在元素布局、呈现和准备交互时发生。[假设您有一些数据(在数据上下文中)可供决定是展开还是折叠]
您可以使用以下样式:
<Expander ...>
<Expander.Style>
<Style TargetType="{x:Type Expander}">
<Style.Triggers>
<DataTrigger Binding="{Binding ShouldExpand}" Value="True">
<Setter Property="IsExpanded" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
</Expander>
我遇到了问题。exp.Header不是字符串,使用ToString()进行类型转换将返回“System.Windows.Controls.DockPanel”。如何获取类别的实际名称?(名称是我分组的依据)标题
是一个对象
,其值取决于用作标题的对象类型。如果您使用String
您可以按照我写的那样进行测试,如果您使用DockPanel
您需要从您的对象中检索类别名称。非常感谢迄今为止的所有帮助!使用$exp.Header作为DockPanel$和$exp.Name$只返回一个空字符串。我是wpf和xaml的新手,所以我可能遗漏了一些明显的东西。我在上面的文本中包含了一个代码片段。DockPanel
不是必需的,但它取决于您必须做什么;无论如何,请看我的编辑。
<Expander ...>
<Expander.Style>
<Style TargetType="{x:Type Expander}">
<Style.Triggers>
<DataTrigger Binding="{Binding ShouldExpand}" Value="True">
<Setter Property="IsExpanded" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Expander.Style>
</Expander>