【发布时间】:2014-04-08 19:03:33
【问题描述】:
我有一个GridView 和GridView.ItemsSource 设置为实现ISupportIncrementalLoading 的集合。通过实现这一点,我的目标是通过仅加载显示所需的项目来改善加载时间和 UI 响应能力。该框架为我处理了这个问题,并且效果很好。
<GridView ItemsSource="{Binding Items}">
<GridView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
但是,如果我将上述 XAML 包装在 ScrollViewer 中,如下所示,整个项目集合会加载,就好像 GridView 无法分辨它的边界在哪里.
<ScrollViewer>
<GridView ItemsSource="{Binding Items}">
<GridView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</ScrollViewer>
我知道 ScollViewer 将允许它的内容填充尽可能多的空间,所以这里的效果确实有意义;这只是一个无法预料的烦恼。有没有人可以解决这个问题?
注意:为了举例,我在这里简化了代码。如果它有助于了解我要完成的工作:我的目标是在我的 Hub 页面上的 HubSection 内有一个增量加载的 GridView。我的中心页面有 2 个 HubSection,一个宽度为 600 像素,另一个包含 GridView,但未定义宽度。
【问题讨论】:
-
问题是,如果
GridView中已经有ScrollViewer,为什么还要在ScrollViewer中添加GridView? -
@FilipSkakun 我实际上是在尝试将 GridView 放在 HubSection 中。问题在这两种情况下都会出现。我认为人们可能更熟悉 ScrollViewer 控件。
-
对,Hub 控件也有一个 ScrollViewer,所以同样的问题也适用。我的回答也是。
标签: .net xaml windows-runtime winrt-xaml scrollviewer