少しテンプレートを使用したリストボックスがあります。グループはエキスパンダーによって表されます。リストボックスはファイルシステムにリンクされ、各フォルダーは独自のエキスパンダーを取得します。ファイルの名前が変更されたり、削除されたりするたびに、リストボックスのビューが更新されます。これはうまく機能しますが、更新が呼び出されると、各エキスパンダーが折りたたまれます。それらを開いたままにしておく良い方法を見つけることができないようです。バインディングを使用して単一のエキスパンダーでこれを解決する別の質問を見ました。「IsExpanded」でのデータ バインディングの問題は、不明な数のエキスパンダーがあり、設計時にいくつあるか、それらが何と呼ばれるかなどを知る方法がないことです。何か案は?
<ListBox.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander VerticalAlignment="Top"
OverridesDefaultStyle="True"
Template="{StaticResource SimpleExpanderTemp}">
<Expander.Header>
<TextBlock VerticalAlignment="Center"
Background="Transparent"
Text="{Binding Path=Name}"
FontFamily="SegoeUI"
FontSize="16"
Foreground="Black"/>
</Expander.Header>
<Expander.Tag>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#696969" />
<GradientStop Offset="1.0" Color="#474747" />
</LinearGradientBrush>
</Expander.Tag>
<ItemsPresenter/>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListBox.GroupStyle>