簡體   English   中英

UWP - FlipView - 需要FlipView才能加載單個項目內容

[英]UWP - FlipView - Need FlipView to only load a single item content

上周,我一直在努力嘗試在Microsoft News UWP應用程序中實現FlipView。

我嘗試了以下內容:帶有ItemTemplate的FlipView和帶有我的項目的ObservableCollection。 然而,這導致我的ObservableCollection中的所有項目都被預先加載,這不是我想要的。

有沒有人有任何提示允許我改變FlipView的這種行為如下:只加載第一項,然后當我點擊箭頭,下一項加載。

提前致謝 :)

更新:我可以確認行為是@Sunteen Wu - MSFT說。 我也嘗試使用與@Martin Zikmund基金演示相似的邏輯,然而,它沒有清除前一個項目

我的目標是一次加載1個單項。 這樣的行為:
1)我看到1項
2)如果我點擊> (下一個)箭頭:
*此項目從flipview中卸載
*下一個項目已加載
3)如果我點擊< (上一個)箭頭:
*此項目從flipview中卸載
*重新加載上一個項目

希望有人可以提供幫助,我真的想把這個功能提供給我的用戶^^。

然而,這導致我的ObservableCollection中的所有項目都被預加載

FlipView控件的ItemsPanelTemplate包含VirtualizingStackPanel 因此, FlipView控件默認支持虛擬化。 您可以在調試應用程序時檢查可視化樹,您可能會發現無論綁定到FlipView項目有多少,它默認只加載三個FlipViewItem

在此輸入圖像描述

因此在我看來, FlipView不會預先加載ObservableCollection的所有項目,默認情況下它可能會加載前一個,當前的一個和下一個,除非您將ItemPanel更改為不支持虛擬化的StackPanel

 <FlipView x:Name="flipView1" Width="480" Height="270" 
   BorderBrush="Black" BorderThickness="1">
     <FlipView.ItemsPanel>
         <ItemsPanelTemplate>
             <StackPanel />
         </ItemsPanelTemplate>
     </FlipView.ItemsPanel>
     <FlipView.ItemTemplate>
        ...
     </FlipView.ItemTemplate>
 </FlipView>

只加載了第一個項目,然后當我單擊箭頭時,下一個項目被加載。

由於FlipView使用虛擬化,所以我猜你還不需要這個功能。 如果您仍然需要它,可以嘗試將源綁定到FlipView ,實例數據為空,每次選擇更改時,強制手動加載內容。 為此,您可以參考這個類似的線程 ,@ Martin Zikmund提供單個加載的演示

此外,根據FlipView的做和不做的評論:

避免對較大的集合使用翻轉視圖控件,因為翻閱每個項目的重復動作可能很乏味。

如果您確實有更大的綁定集合,請避免使用翻轉視圖,但請考慮列表視圖或網格視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM