.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
.