不支持ScrollViewer中的ISupportIncrementalLoading?

时间:2014-04-08 19:03:33

标签: .net xaml windows-runtime winrt-xaml scrollviewer

我有GridView GridView.ItemsSource设置为实现ISupportIncrementalLoading的集合。通过实现这一点,我的目标是通过仅加载显示所需的项目来改善加载时间和UI响应性。该框架为我处理这个问题,它很有用。

    <GridView ItemsSource="{Binding Items}">
        <GridView.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Text}"/>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>

然而,如果我将上述XAML包装在ScrollViewer中,如下所示,整个项目集合,好像GridView无法分辨它在哪里&#39边界是。

<ScrollViewer>
    <GridView ItemsSource="{Binding Items}">
        <GridView.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Text}"/>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</ScrollViewer>

我知道ScollViewer会允许它的内容填充它想要的空间,所以这里的效果确实有意义;这只是一种无法预料的烦恼。有没有人有办法解决这个问题?

注意:我在这里简化了代码,例如。如果它有助于了解我想要完成的任务:我的目标是在我的Hub页面上的HubSection中加载一个GridView。我的中心页面有2个HubSections,一个宽度为600px,另一个带有GridView,没有定义宽度。

1 个答案:

答案 0 :(得分:0)

您可以通过手动设置GridView的大小来轻松解决此问题。根据您的方案,您可以执行一次或处理SizeChanged上的ScrollViewer事件,并根据GridView的视口大小属性设置ScrollViewer的大小