当我将虚拟化设置为真时,我遇到了一个奇怪的问题,例如组合框样式,我有一个选中的组合框来检查组合框项目中的所有复选框。
在 ItemsPanel 属性中,我使用 VirtualizingStackPanel 进行了一些自定义样式,如下所示
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsItemsHost="True"
IsVirtualizing="True"
VirtualizationMode="Recycling" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
但是在滚动视图之前和之后,它是不同的。
例如,在这里我尝试在向下滚动项目面板后获取组合框的第一个项目
ComboBoxItem cmbItem = ComboBox1.ItemContainerGenerator.ContainerFromItem(ComboBox1.Items[0]) as ComboBoxItem;
但是,我在这里得到的只是 NULL。
那么无论如何我们可以使用虚拟化来实现这一点吗?(我知道它已经在虚拟化了!)。或者我们应该摆脱虚拟化并考虑另一种解决方案。我们看到,如果没有虚拟化属性,组合框的加载速度非常慢。
有什么想法吗?
提前致谢!:)