Xamarin.Forms CollectionView-Einführung
CollectionView
ist eine Ansicht für die Darstellung von Listen mit Daten mit unterschiedlichen Layoutspezifikationen. Es zielt darauf ab, eine flexiblere und leistungsfähigere Alternative zu ListView
zu bieten. Die folgenden Screenshots zeigen z. B. ein CollectionView
vertikales Raster mit zwei Spalten und ermöglicht die Mehrfachauswahl:
CollectionView
sollte für die Darstellung von Listen mit Daten verwendet werden, die einen Bildlauf oder eine Auswahl erfordern. Ein bindbares Layout kann verwendet werden, wenn die anzuzeigenden Daten keinen Bildlauf oder keine Auswahl erfordern. Weitere Informationen finden Sie unter "Bindable Layouts" in Xamarin.Forms.
CollectionView
ist ab Xamarin.Forms 4.3 verfügbar.
Wichtig
CollectionView
ist unter iOS und Android verfügbar, ist aber nur teilweise auf dem Universelle Windows-Plattform verfügbar.
Unterschiede zwischen CollectionView und ListView
Zwar sind die APIs CollectionView
und ListView
ähnlich, es gibt jedoch einige wichtige Unterschiede:
CollectionView
weist ein flexibles Layoutmodell auf, mit dem Daten vertikal oder horizontal in einer Liste oder einem Raster dargestellt werden können.CollectionView
unterstützt die Einzel- und Mehrfachauswahl.CollectionView
hat kein Konzept von Zellen. Stattdessen wird eine Datenvorlage verwendet, um die Darstellung der einzelnen Datenelemente in der Liste zu definieren.CollectionView
verwendet automatisch die Virtualisierung, die von den zugrunde liegenden nativen Steuerelementen bereitgestellt wird.CollectionView
reduziert die API-Oberfläche vonListView
. Viele Eigenschaften und Ereignisse vonListView
sind inCollectionView
nicht vorhanden.CollectionView
enthält keine integrierten Trennzeichen.CollectionView
löst eine Ausnahme aus, wennItemsSource
aus dem UI-Thread aktualisiert wird.
Wechseln von ListView zu CollectionView
ListView
Implementierungen in vorhandenen Xamarin.Forms Anwendungen können mithilfe der folgenden Tabelle zu CollectionView
Implementierungen migriert werden:
Konzept | ListView-API | CollectionView |
---|---|---|
Daten | ItemsSource |
CollectionView wird mit Daten aufgefüllt, indem die Eigenschaft ItemsSource festgelegt wird. Weitere Informationen finden Sie unter Füllen einer CollectionView mit Daten. |
Darstellung von Elementen | ItemTemplate |
Die Darstellung der Elemente in CollectionView kann definiert werden, indem die Eigenschaft ItemTemplate auf DataTemplate festgelegt wird. Weitere Informationen finden Sie unter Definieren der Darstellung des Elements. |
Zellen | TextCell , ImageCell ViewCell |
CollectionView hat kein Konzept von Zellen und daher kein Konzept der Offenlegungsindikatoren. Stattdessen wird eine Datenvorlage verwendet, um die Darstellung der einzelnen Datenelemente in der Liste zu definieren. |
Zeilentrennzeichen | SeparatorColor , SeparatorVisibility |
CollectionView enthält keine integrierten Trennzeichen. Diese können bei Bedarf in der Elementvorlage bereitgestellt werden. |
Auswahl | SelectionMode , SelectedItem |
CollectionView unterstützt die Einzel- und Mehrfachauswahl. Weitere Informationen finden Sie unter Xamarin.Forms CollectionView Selection. |
Zeilenhöhe | HasUnevenRows , RowHeight |
In CollectionView wird die Zeilenhöhe jedes Elements durch die Eigenschaft ItemSizingStrategy bestimmt. Weitere Informationen finden Sie unter Anpassen der Größe von Elementen. |
Caching | CachingStrategy |
CollectionView verwendet automatisch die Virtualisierung, die von den zugrunde liegenden nativen Steuerelementen bereitgestellt wird. |
Kopf- und Fußzeilen | Header , , HeaderElement HeaderTemplate , Footer , , FooterElement FooterTemplate |
CollectionView kann über die Eigenschaften Header , Footer , HeaderTemplate und FooterTemplate eine Kopf- und Fußzeile darstellen, die mit den Elementen der Liste mitlaufen. Weitere Informationen finden Sie unter Kopf- und Fußzeilen. |
Gruppierung | GroupDisplayBinding , , GroupHeaderTemplate GroupShortNameBinding IsGroupingEnabled |
CollectionView zeigt korrekt gruppierte Daten an, indem seine Eigenschaft IsGrouped auf true gesetzt wird. Gruppenkopf- und Gruppenfußzeilen können angepasst werden, indem die Eigenschaften GroupHeaderTemplate und GroupFooterTemplate auf DataTemplate Objekte gesetzt werden. Weitere Informationen finden Sie unter Xamarin.Forms CollectionView Grouping. |
Aktualisierung durch Ziehen | IsPullToRefreshEnabled , , IsRefreshing RefreshAllowed , RefreshCommand , RefreshControlColor , , BeginRefresh() EndRefresh() |
Die Pull-to-Refresh-Funktionalität wird unterstützt, indem ein CollectionView als untergeordnetes Element eines RefreshView gesetzt wird. Weitere Informationen finden Sie unter Pull-to-Refresh. |
Kontextmenüelemente | ContextActions |
Kontextmenüeinträge werden unterstützt, indem eine SwipeView als Stammansicht in der DataTemplate festgelegt wird, die das Aussehen jedes Datenelements in der CollectionView definiert. Weitere Informationen finden Sie unter Kontextmenüs. |
Scrollen | ScrollTo() |
CollectionView definiert Methoden, mit denen Elemente in die Ansicht gescrollt ScrollTo werden. Weitere Informationen finden Sie unter Scrollen. |