.net xaml windows-runtime winrt-xaml scrollviewer

.net - ISupportIncrementalLoading dentro de ScrollViewer no es compatible?



xaml windows-runtime (1)

Tengo un GridView con GridView.ItemsSource establecido en una colección que implementa ISupportIncrementalLoading . Al implementar esto, mi objetivo es mejorar el tiempo de carga y la capacidad de respuesta de la IU cargando solo los elementos necesarios para la visualización. El marco maneja esto para mí y funciona muy bien.

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

Sin embargo , si envuelvo el XAML anterior en un ScrollViewer como el siguiente, toda la colección de elementos se carga como si el GridView no pudiera decir dónde están sus límites.

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

Sé que ScollViewer permitirá que su contenido ocupe todo el espacio que quiera, por lo que el efecto aquí tiene sentido; es solo una molestia imprevista. ¿Alguien tiene una solución para evitar este problema?

Nota: he simplificado el código aquí, por ejemplo, sake. En caso de que ayude a saber lo que estoy tratando de lograr: mi objetivo es tener un GridView incrementalmente cargado dentro de HubSection en mi página Hub. Mi página de concentrador tiene 2 secciones de Hub, una de 600px de ancho y la otra con GridView sin ancho definido.


Puede solucionarlo fácilmente configurando el tamaño de GridView manualmente. Dependiendo de su escenario, puede hacerlo una vez o quizás manejar el evento SizeChanged en el ScrollViewer y establecer el tamaño de GridView función de las propiedades de tamaño de ventana del ScrollViewer .