У меня есть простой ListView, который извлекает данные из ObservableCollection, и я использую CollectionViewSource для набора GroupPropertyDescription, чтобы мои строки выглядели сгруппированными.Я использовал следующий стиль, чтобы использовать расширитель для каждой группы:
<Style TargetType="{x:Type GroupItem}" x:Key="listViewGroupStyle">
<Setter Property="Margin" Value="0 0 0 5" />
<Setter Property="Template" >
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="False" BorderBrush="{Binding Name, Converter={StaticResource statusForegroundConverter}}" BorderThickness="2" Margin="1">
<Expander.Header>
<Border BorderThickness="3" BorderBrush="{Binding Name, Converter={StaticResource statusBackgroundConverter}}" CornerRadius="6">
<DockPanel TextBlock.FontWeight="Bold" TextBlock.Foreground="{Binding Name, Converter={StaticResource statusForegroundConverter}}">
<TextBlock Text="{Binding Name, Converter={StaticResource statusStringConverter}}" Margin="5 2 2 2" />
<TextBlock Text=" - " Margin="2" />
<TextBlock Text="{Binding Path=ItemCount}" Margin="0 2 5 2"/>
</DockPanel>
</Border>
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Проблема, с которой я сталкиваюсь, заключается в том, что моя коллекция часто обновляется во время выполнения и каждый раз, когда все группы сворачиваются независимо отили нет, у меня было какое-то открытое.
Есть ли способ сохранить внешний вид ListView после переназначения моей коллекции?