基本的なリストボックス テンプレート
<ListBox Height="200"
x:Name="lstBox"
ScrollViewer.VerticalScrollBarVisibility="Visible"
VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling" VirtualizingStackPanel.CacheLength="2,3"
VirtualizingStackPanel.CacheLengthUnit="Page"
ItemTemplate="{StaticResource DataTemplater}"
ItemsSource="{Binding Source={StaticResource SearchedResults}}"
SelectedItem="{Binding CurrentItem}"
IsSynchronizedWithCurrentItem="True">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<ScrollViewer >
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel ScrollUnit="Pixel" Orientation="Vertical" VirtualizationMode="Recycling" IsContainerVirtualizable="True" IsVirtualizing="True" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
DataTemplater 項目テンプレートには、コントロールがバインドされたスタック パネルが含まれています。バインディング ソースは、データ セットのデータ テーブルです。
ここでの問題は、仮想化が機能していないことです。アイテム テンプレートで指定された C# コード ルックアップがあり、そのコードは、表示されているアイテムだけでなく、データ テーブル内のすべてのアイテムにヒットしていますか?
この問題を解決するにはどうすればよいですか?