我正在使用按类别分组的扩展器,并希望仅将某些类别扩展为默认值。也就是说,我想在为用户呈现窗口之前扩展一些类别。我只是发现默认情况下如何折叠/展开所有类别。
有关如何做到这一点的任何建议吗?
编辑:
xaml文件的代码段:
<Expander IsExpanded="False">
<Expander.Header>
<DockPanel>
<TextBlock Grid.Column="2" Text="{Binding Path=Name}" />
</DockPanel>
</Expander.Header>
</Expander>
可能没有必要使用DockPanel。
答案 0 :(得分:2)
您可以选择使用Loaded事件展开某些类别。 如果这是你的扩展器:
<Expander Loaded="OnLoad">
<Expander.Header>
<TextBlock Text="RightCategory" />
</Expander.Header>
</Expander>
使用OnLoad
方法选择要扩展的扩展器,例如IsExpanded属性和用于控件的Header:
void OnLoad(object sender, RoutedEventArgs e)
{
TextBlock tblock = (sender as Expander).Header as TextBlock;
if (tblock.Text == "RightCategory")
(sender as Expander).IsExpanded = true;
}
事实上,Loaded
通常是元素初始化序列中引发的最后一个事件。它将始终在Initialized
之后提出;当元素布局,渲染并准备好进行交互时发生。
答案 1 :(得分:0)
[假设您有一些数据(在数据上下文中),您决定是否展开或折叠]
你可以使用一种风格:
<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>