title: CollectionView filter freezes UI when height not fixed?
body: <p>I have a ListBox which is databound to an ObservableCollection and has a complex ItemContainerStyle (with images, progress bars and text)</p>
  
  <p>When I try to apply a filter on its CollectionView, with about 200 items in the collection, the UI will freeze for 2-3 seconds. This only occurs when the ListBox's height is not fixed (ie is allowed to grow). It is instant when the ListBox height is set to a value, eg 500</p>
  
  <pre><code>&lt;Style x:Key="CollectionStyle" TargetType="{x:Type ListBoxItem}"&gt;
          &lt;Setter Property="Template"&gt;
          &lt;Setter.Value&gt;
              &lt;ControlTemplate&gt;
                  &lt;Border x:Name="Bd" VerticalAlignment="Center" BorderBrush="Transparent" BorderThickness="1" CornerRadius="3.5" Margin="2" Padding="2"&gt;
                      &lt;Grid&gt;
                          &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="50"/&gt;
                              &lt;ColumnDefinition Width="*" /&gt;
                          &lt;/Grid.ColumnDefinitions&gt;
                          &lt;Image Grid.Column="0" Source="{Binding Path=ListIcon}" Width="32" Margin="5,5,0,5" VerticalAlignment="Center" /&gt;
                          &lt;Grid Grid.Column="1"&gt;
                              &lt;Grid.RowDefinitions&gt;
                                  &lt;RowDefinition Height="Auto" /&gt;
                                  &lt;RowDefinition Height="Auto" /&gt;
                                  &lt;RowDefinition Height="Auto" /&gt;
                              &lt;/Grid.RowDefinitions&gt;
  
                              &lt;StackPanel Orientation="Horizontal" Margin="10,0"&gt;
                                  &lt;TextBlock Text="{Binding Path=Name}" HorizontalAlignment="Stretch" VerticalAlignment="Center" Style="{StaticResource TextFontStyleTextBlock}" FontSize="14" TextTrimming="CharacterEllipsis" /&gt;
                                  &lt;TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Text="{Binding Path=Time,UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" Style="{StaticResource LabelFontStyleTextBlock}"  TextTrimming="CharacterEllipsis" FontSize="12" Margin="5,0,0,0"/&gt;
                              &lt;/StackPanel&gt;
  
                              &lt;ProgressBar Grid.Row="1" Height="10" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="10,0,10,0" Value="{Binding Percentage, Mode=OneWay, Converter={StaticResource doubleToProgress}}"&gt;
                                  &lt;ProgressBar.Foreground&gt;
                                      &lt;MultiBinding Converter="{StaticResource ProgressBarColorConverter}"&gt;
                                          &lt;Binding Mode="OneWay" Path="Percentage" /&gt;
                                          &lt;Binding Mode="OneWay" Path="IsStatic" /&gt;
                                      &lt;/MultiBinding&gt;
                                  &lt;/ProgressBar.Foreground&gt;
                              &lt;/ProgressBar&gt;
  
                              &lt;StackPanel Orientation="Horizontal" Grid.Row="2" Margin="10,0,10,0"&gt;
                                  &lt;Image VerticalAlignment="Center" Visibility="{Binding IsStatic, Converter={StaticResource CollapsedIfFalse}, Mode=OneWay, FallbackValue=Collapsed}" Source="/Common;component/Images/alert.ico" Margin="2,2,2,2"
                                                      RenderOptions.BitmapScalingMode="HighQuality"
                                                     RenderOptions.EdgeMode="Aliased" /&gt;
                                  &lt;TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" Text="{Binding Path=Description,Mode=OneWay}" Foreground="Gray" TextTrimming="CharacterEllipsis" FontSize="11"/&gt;
                              &lt;/StackPanel&gt;
                          &lt;/Grid&gt;
                      &lt;/Grid&gt;
                  &lt;/Border&gt;
              &lt;/ControlTemplate&gt;
          &lt;/Setter.Value&gt;
      &lt;/Setter&gt;
  &lt;ListBox Grid.Row="0" x:Name="items" ItemsSource="{Binding Path=MyCollection}"
                                   ItemContainerStyle="{StaticResource CollectionStyle}"   /&gt;
  </code></pre>
  
  <p>Is there a way to fix this freezing? Having a fixed height on the ListBox is not an acceptable outcome, as it causes a vertical scroll bar to appear in a control which already has a vertical scroll bar</p>