Diferencias de CollectionView y ListView
Si bien las API CollectionViewy ListViewson similares, existen algunas diferencias notables:
CollectionViewtiene un modelo de diseño flexible, que permite que los datos se presenten vertical u horizontalmente, en una lista o en una cuadrícula.
CollectionViewadmite selección única y múltiple.
CollectionViewno tiene concepto de células. En su lugar, se utiliza una plantilla de datos para definir la apariencia de cada elemento de datos en la lista.
CollectionViewutiliza automáticamente la virtualización proporcionada por los controles nativos subyacentes.
CollectionViewreduce la superficie API de ListView. Muchas propiedades y eventos de ListViewno están presentes en CollectionView.
CollectionViewno incluye separadores incorporados.
CollectionViewlanzará una excepción si ItemsSourcese actualiza fuera del subproceso de la interfaz de usuario.
CollectionViewdefine dos ScrollTométodos, que desplazan los elementos a la vista. Una de las sobrecargas desplaza el elemento en el índice especificado a la vista, mientras que la otra desplaza el elemento especificado a la vista. Ambas sobrecargas tienen argumentos adicionales que se pueden especificar para indicar el grupo al que pertenece el elemento, la posición exacta del elemento después de que se haya completado el desplazamiento y si animar el desplazamiento.
CollectionViewdefine un ScrollToRequestedevento que se activa cuando ScrollTose invoca uno de los métodos. El ScrollToRequestedEventArgsobjeto que acompaña al ScrollToRequestedevento tiene muchas propiedades, incluidas IsAnimated, Index, Itemy ScrollToPosition. Estas propiedades se establecen a partir de los argumentos especificados en las ScrollTollamadas al método.
Además, CollectionViewdefine un Scrolledevento que se activa para indicar que se produjo un desplazamiento. El ItemsViewScrolledEventArgsobjeto que acompaña al Scrolledevento tiene muchas propiedades. Para obtener más información, consulte Detectar desplazamiento .