コレクションビューを持つユーザーコントロールがありLlistBox
ますItemsSource
。Expander
グループ化するために、グループ化されたアイテムが次のようにコントロール内にあるグループ スタイルを使用しました。
ラベルの内容が「UNKNOWN」Exapander
である必要があり、デフォルトで閉じている必要があり、残りは開いたままにする必要があるため、2 つの方法を試しましたが、いずれも機能しませんでした。
- Controltemplate.Triggers 内でのデータ トリガーの使用
- Controltemplate.Resources 内でのデータ トリガーの使用
グループによってエキスパンダーのカウント数が違うので、ショートカットキーでエキスパンダーの開閉は出来ますか??
例: 2 つの Expander (動物/鳥) がある場合、Alt+F1「Exapnder Animals」を閉じるか開く必要があります。
「 Exapnder Alt+F2Birds」を閉じるか開く必要があります
<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>