1
我有以下列表框:VirtualizingStackPanel不工作
<ScrollViewer>
<!--Spec Definitions-->
<ListBox DataContext="{Binding SpecPackageSpecGroupListViewModel}"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling"
ScrollViewer.IsDeferredScrollingEnabled="True"
ItemContainerStyle="{StaticResource SpecPackageSpecGroupListBoxStyle}"
ItemsSource="{Binding SortedChildren}"
Background="Transparent"
BorderThickness="0" SelectionMode="Extended"
Margin="5,5,5,5">
<ListBox.ItemTemplate>
<DataTemplate>
<Controls:SpecPackageSpecGroupControl/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
此列表框应该举办〜1000个项目,但复杂的。 我希望它与VirtualizingStackPanel工作,所以我已经设置了可视化XAML配置:
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Recycling"
我的问题是,我认为这是行不通的 - 第一个 - 它需要很长的时间来加载〜 700项,其次,当我遇到断点在我的控制构造 - 我可以看到它被称为700倍:
public static int Counter = 0;
public SpecPackageSpecGroupControl()
{
InitializeComponent();
Counter++;
if (Counter%100 == 0)
Console.WriteLine("Hi");
}
我突破点上Console.WriteLine命令(“你好”),我可以看到,静态计数器达到了700.
所以基本上UIElem虽然这是一种虚拟模式,但它们正在创建。
我误解了虚拟化模式,还是有什么我做错了?
你救了我的一天! – alizx 2015-01-04 09:02:43