I have performance problem with my listview. There is a WPF ListView with groupping and virtualisation.
<ListView Name="ListOfEvents"
SelectionMode="Extended"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.IsVirtualizingWhenGrouping="True"
VirtualizingPanel.VirtualizationMode="Recycling">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Expander IsExpanded="False">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock>
<TextBlock.Inlines>
<Run Text="{Binding Name, Mode=OneWay}" FontWeight="Bold" Foreground="Gray" />
<Run Text=":"/>
</TextBlock.Inlines>
</TextBlock>
<TextBlock Text="{Binding ItemCount}" Foreground="Black" FontWeight="Bold"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter/>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsVisible}" Value="False" >
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Width="100" DisplayMemberBinding="{Binding Name}" >
<GridViewColumnHeader Content="{x:Static const:Resources.IDS_NAME}" Tag ="name" />
</GridViewColumn>
<GridViewColumn Width="100" DisplayMemberBinding="{Binding Status}" >
<GridViewColumnHeader Content="{x:Static const:Resources.IDS_STATUS}" Tag="status" />
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Sometimes I need to display only one item per group using <Style.Triggers>. In such cases items' property IsVisible is changed to false, but when it happens the application freezes due to layout rendering. In profiling I observe following situation:
1 - Ok. All items are visible. Virtualisation works properly: 
2 - Slow. One item per group. VirtualizingStackPanel contains all ListViewItems from group: 
Any suggestions why does it happens? How can I solve it?