我有一个带有 的用户控件LlistBox
,它有一个ItemsSource
带有 Collectionview 的用户控件。为了分组,我使用了分组样式,分组项目将在Expander
控件内,如下所示。
我希望标签内容Exapander
为“未知”的默认情况下必须关闭,其余部分应保持打开状态,所以我尝试了两种方法,但都没有奏效,
- 在 Controltemplate.Triggers 中使用数据触发器
- 在 Controltemplate.Resources 中使用数据触发器
由于扩展器计数因组而异,是否可以使用快捷键打开和关闭扩展器?
例如:如果我有两个扩展器(动物/鸟类),使用Alt+F1我需要关闭或打开“扩展器动物”
使用Alt+F2我需要关闭或打开“Exapnder Birds”
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding ElementName=lbl, Path=Content}" Value="UNKNOWN">
<Setter Property="Expander.IsExpanded" Value="False" />
</DataTrigger>
</ControlTemplate.Triggers>
<ControlTemplate.Resources>
<Style TargetType="{x:Type Expander}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=lbl, Path=Content}" Value="UNKNOWN">
<Setter Property="Expander.IsExpanded" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ControlTemplate.Resources>
<Expander IsExpanded="True" FlowDirection="LeftToRight" >
<Expander.Header >
<Label x:Name="lbl" BorderBrush="Black" BorderThickness="0.5"
Content="{Binding Path = Name}" Width="{Binding ElementName=MyList, Path=ActualWidth}"
FontSize="16" FontFamily="Verdana"/>
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>