2016-05-23 65 views
2

我想知道在多级结构中是否存在关于虚拟化的概念。WPF中的多级虚拟化

我有一个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> 

enter image description here

回答

0

为了实现这一目标,你必须限制每个孩子ListView的高度,以同样的方式在窗口限制顶层ListView使滚动条出现的高度。当你限制子ListView的高度时,如果需要的话你会看到一个内部的滚动条,你可以确定它们是虚拟化的。

如果这是不可接受的,你将不得不建立像树列表视图

+0

谢谢。是。你是对的。但我不能用这个解决我的问题。 –

+0

@DomenicoThöni,看看这个:http://www.codeproject.com/Articles/30721/WPF-TreeListView-Control – Natxo