首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP - FlipView -需要FlipView只加载单个项目内容。

UWP - FlipView -需要FlipView只加载单个项目内容。
EN

Stack Overflow用户
提问于 2017-01-29 23:48:17
回答 1查看 658关注 0票数 3

上周,我一直在努力尝试在Microsoft应用程序中实现一个FlipView。

我尝试了以下几种方法:带有ItemTemplate的ItemTemplate和带项目的ObservableCollection。然而,这导致了我的ObservableCollection中的所有项目都是预加载的,这不是我想要的。

是否有任何提示允许我将FlipView的行为更改为:只加载第一个项,然后单击箭头,下一个项将被加载。

(预先谢谢:)

更新:我可以确认这种行为是@Sunteen MSFT说的。我还尝试使用类似于@Martin Zikmund为演示提供资金的逻辑,但是它并没有清除之前的项目。

我的目标是一次加载一个项目。这样的行为:

( 1)我看到一项

2)如果单击> (next)箭头:

*从flipview卸载此项

*加载下一个项目

3)如果单击< (上一)箭头:

*从flipview卸载此项

*重新加载前一项。

希望有人能帮忙,我真的很想把这个功能给我的用户^^。

EN

回答 1

Stack Overflow用户

发布于 2017-01-30 09:32:34

但是,这导致了我的ObservableCollection中的所有项目都被预加载。

FlipView控件的ItemsPanelTemplate包含VirtualizingStackPanel。因此,FlipView控件在默认情况下支持虚拟化。您可以在调试应用程序时检查可视化树,无论绑定到FlipView的项目有多少,默认情况下它只加载三个FlipViewItem

因此,在我看来,FlipView不会预加载ObservableCollection的全部项目,默认情况下,它可能加载前一项、当前项和下一项,除非您将ItemPanel更改为不支持虚拟化的StackPanel

代码语言:javascript
复制
 <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为单个加载提供一个相似螺纹演示

此外,根据做和不做对FlipView的评论:

避免对较大的集合使用翻转视图控件,因为翻转每一项的重复动作可能很乏味。

如果您有一个更大的绑定集合,请避免使用翻转视图,但要考虑列表视图或网格视图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41927282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档