2016-05-23 74 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