我有没有虚拟化的列表框。 我显然失去了一些东西,但无法找到它。
它实际上是一个ListBox中的列表框。 外列表框具有包含一个扩展一个ItemTemplate。 扩展器是用来显示一组项。 膨胀器的内容是,其显示的项目的第二个列表框。 在第二列表框ItemTemplate中被绑定到实际要显示的项目。 我的项目的ViewModel类有一个数,直到属性得到的是所谓的不初始化数据的属性。 然而,WPF是通过每个项目走,造成初始化逻辑,我试图避免的。
我发现,使用ListCollectionView.GroupDescription导致列表框不虚拟化。 现在我在处理在ViewModel我自己的分组。 我的外列表框绑定到一个ObservableCollection(ItemGroupViewModel),其中ItemGroupViewModel有一个组名和项目的列表。 第二个列表框被绑定到ItemGroupViewModel的项目。 这并没有解决问题。 我还检查VirtualizingStackPanel.GetIsVirtualizing()在调试时,它返回true,但仍WPF通过每一个项目走。 我仔细检查过,以确保我的逻辑分组中的每个项目,其中我试图避免不火关数据初始化逻辑。
我认为IsSharedSizeScope可能导致列表框来呈现,以确定列宽的所有项目。 于是我转身SharedSizeScope关闭。 仍然没有虚拟化。
我在想什么?