2016-02-18 169 views
1

我剛開始在UWP上開發應用程序。我有一個問題,我有一個ListView DataTemplate是一個用戶控件UWP ListView項目模板重用以前的項目模板

<ListView ItemsSource="{Binding Data, Mode=OneWay}" SelectionMode="None" IsItemClickEnabled="False" 
         ItemContainerStyle="{StaticResource ListViewItemCustomStyle}">    
       <ListView.ItemTemplate> 
        <DataTemplate> 
         <items:FeedItem DataContext="{Binding}" Margin="0,0,0,8"/> 
        </DataTemplate> 
       </ListView.ItemTemplate> 
      </ListView> 

然後我將數據源設置爲ListView。

這些項目呈現良好,但在幾個項目之後,他們以某種方式開始使用以前的項目模板。我無法理解。有沒有人遇到過這個問題,並知道如何解決它?非常感謝。

+0

你是什麼意思「以前的項目模板」? – GeertvdC

+0

@GeertvdC示例:ListView中有很多項目嗎?在滾動大約10個項目之後,儘管該項目的內容(數據上下文)完全不同,但第11個項目具有與第一個項目完全相同的模板。 –

回答

0

ListViews的默認ItemsPanelTemplate有一個使用虛擬化的ItemsStackPanel。這個想法是隻有那些現在顯示的內容/渲染項目或通過滾動容易到達的項目。你可以閱讀更多關於這個主題here

如果您確實想停止使用任何虛擬化技術,您只需定義自己的ItemsPanel。像這樣:

<ListView> 
    <ListView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Vertical"/> 
     </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 
</ListView>