我有一个带有一些模板的列表框。组由扩展器表示。列表框链接到文件系统,每个文件夹都有自己的扩展器。任何时候重命名、删除文件等,都会刷新列表框的视图。这很好用,但是一旦调用了刷新,每个扩展器都会崩溃。我似乎找不到让它们保持开放的好方法。我看到另一个使用绑定来解决单个扩展器的问题。“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>