Xamarin.Forms Einführung in CollectionView
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 zu ListView
bieten. Die folgenden Screenshots zeigen z. B. ein CollectionView
, das ein vertikales Raster mit zwei Spalten verwendet und mehrfache Auswahl ermöglicht:
CollectionView
sollte zum Darstellen von Listen von Daten verwendet werden, die einen Bildlauf oder eine Auswahl erfordern. Ein bindbares Layout kann verwendet werden, wenn für die anzuzeigenden Daten kein Bildlauf oder keine Auswahl erforderlich ist. Weitere Informationen finden Sie unter Bindable Layouts in Xamarin.Forms.
CollectionView
ist ab Xamarin.Forms Version 4.3 verfügbar.
Wichtig
CollectionView
ist unter iOS und Android verfügbar, ist aber nur teilweise auf der Universelle Windows-Plattform verfügbar.
Unterschiede zwischen CollectionView und ListView
CollectionView
Die APIs und ListView
die APIs sind zwar ähnlich, es gibt jedoch einige wichtige Unterschiede:
CollectionView
verfügt über ein flexibles Layoutmodell, mit dem Daten vertikal oder horizontal in einer Liste oder in einem Raster dargestellt werden können.CollectionView
unterstützt die Auswahl von Einzel- und Mehrfachauswahl.CollectionView
hat kein Konzept von Zellen. Stattdessen wird eine Datenvorlage verwendet, um die Darstellung jedes Datenelements 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, wenn dieseItemsSource
über den 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 |
Ein CollectionView wird mit Daten aufgefüllt, indem seine ItemsSource -Eigenschaft festgelegt wird. Weitere Informationen finden Sie unter Auffüllen einer CollectionView mit Daten. |
Elementdarstellung | ItemTemplate |
Die Darstellung jedes Elements in einem kann definiert werden, CollectionView indem die ItemTemplate -Eigenschaft auf festgelegt DataTemplate wird. Weitere Informationen finden Sie unter Definieren der Elementdarstellung. |
Zellen | TextCell , ImageCell , ViewCell |
CollectionView hat keinen Begriff von Zellen und daher kein Konzept von Offenlegungsindikatoren. Stattdessen wird eine Datenvorlage verwendet, um die Darstellung jedes Datenelements 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 Auswahl von Einzel- und Mehrfachauswahl. Weitere Informationen finden Sie unter Xamarin.Forms CollectionView Selection. |
Zeilenhöhe | HasUnevenRows , RowHeight |
In einem CollectionView wird die Zeilenhöhe jedes Elements durch die ItemSizingStrategy -Eigenschaft bestimmt. Weitere Informationen finden Sie unter Größenanpassung 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 eine Kopf- und Fußzeile darstellen, die mit den Elementen in der Liste über die Header Eigenschaften , Footer , HeaderTemplate und FooterTemplate scrollen. Weitere Informationen finden Sie unter Kopf- und Fußzeilen. |
Gruppierung | GroupDisplayBinding , GroupHeaderTemplate , GroupShortNameBinding , IsGroupingEnabled |
CollectionView zeigt ordnungsgemäß gruppierte Daten an, indem die -Eigenschaft auf true festgelegt IsGrouped wird. Gruppenheader und Gruppenfußzeilen können angepasst werden, indem die GroupHeaderTemplate Eigenschaften und GroupFooterTemplate auf DataTemplate -Objekte festgelegt werden. Weitere Informationen finden Sie unter Xamarin.Forms CollectionView-Gruppierung. |
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 von RefreshView festgelegt wird. Weitere Informationen finden Sie unter Pull to refresh( Pull to refresh). |
Kontextmenüelemente | ContextActions |
Kontextmenüelemente werden unterstützt, indem sie als SwipeView Stammansicht in der DataTemplate festlegen, die die Darstellung jedes Datenelements im CollectionView definiert. Weitere Informationen finden Sie unter Kontextmenüs. |
Scrollen | ScrollTo() |
CollectionView ScrollTo definiert Methoden, die Elemente in die Ansicht scrollen. Weitere Informationen finden Sie unter Scrollen. |