Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 仅扩展一个节点_Wpf_Xaml - Fatal编程技术网

Wpf 仅扩展一个节点

Wpf 仅扩展一个节点,wpf,xaml,Wpf,Xaml,我正在使用一个按类别分组的扩展器,默认情况下只扩展某些类别。也就是说,我想在为用户显示窗口之前展开一些类别。我只找到了默认情况下如何折叠/展开所有类别 有没有关于如何做到这一点的建议 编辑: xaml文件的代码段: <Expander IsExpanded="False"> <Expander.Header> <DockPanel> <TextBlock Grid.Column="2" Text="{Binding Path=Name}" /

我正在使用一个按类别分组的扩展器,默认情况下只扩展某些类别。也就是说,我想在为用户显示窗口之前展开一些类别。我只找到了默认情况下如何折叠/展开所有类别

有没有关于如何做到这一点的建议

编辑:

xaml文件的代码段:

<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>