我想知道在多层次结构中是否存在关于虚拟化的概念。
我有一个ListView,其中包含可以包含另一个ListView的元素。开箱即用只有顶级Listview支持虚拟化。
是否有任何解决方案可以让子列表虚拟化?
<ListView ItemsSource="{Binding Items}" VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Standard">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="{Binding Name}" />
<!-- SubList-->
<ListView ItemsSource="{Binding Items}" VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Standard">
<ListView.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Name}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:0)
要实现这一点,您必须限制每个孩子ListView
的身高,就像窗口限制顶级ListView
的高度一样,使滚动条显示出来。当您限制子ListView的高度时,如果需要,您将看到每个ListView的内部滚动条,然后您可以确定它们是虚拟化的。
如果这是不可接受的,则必须构建类似树状列表视图的内容