Более 8000 объектов привязываются к элементу управления ListView, и у объекта есть два свойства. ie ID и Description). LstViewTextBLocks - это элемент управления Listview, источник элементов которого назначен «представлению», имеющему тип ICollectionView
. Данные быстро загружаются в коде (как было отмечено при отладке), но при рендеринге данных это занимает почти 6 минут, а также когда данные отображаются во время прокрутки, они становятся очень запаздывающими.
<TabItem Header="data" Background="Gray" Name="textPicker" >
<!--<local:TextPickerView/>-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label DockPanel.Dock="Left" Content="Filter:" Grid.Column="0" Grid.Row="0"/>
<TextBox Name="TextblockFilter1" Grid.Row="0" Grid.Column="1"
Text="{Binding TextSearch,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" />
<ScrollViewer Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<**ListView** Name="LstViewTextBLocks"
VirtualizingStackPanel.VirtualizationMode="Recycling" SelectionMode="Single"
VirtualizingPanel.IsVirtualizing="True" IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedItem,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}">
<ListView.View>
<GridView>
**<GridViewColumn Header="ID" Width="Auto" DisplayMemberBinding="{Binding ID}" />
<GridViewColumn Header="Description" DisplayMemberBinding="{Binding Description}" />**
</GridView>
</ListView.View>
</**ListView**>
</ScrollViewer>
</Grid>
</TabItem>
ItemsSource моего списка в коде был установлен следующим образом:
this.LstViewTextBLocks.ItemsSource = this.View;