Xamarin.Forms Einführung in CollectionView

Beispiel herunterladen Das Beispiel herunterladen

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 ListViewbieten. Die folgenden Screenshots zeigen z. B. ein CollectionView , das ein vertikales Raster mit zwei Spalten verwendet und mehrfache Auswahl ermöglicht:

Screenshot eines vertikalen Rasterlayouts von CollectionView unter iOS und Android

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

CollectionViewist 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 von ListView. Viele Eigenschaften und Ereignisse von ListView sind in CollectionViewnicht vorhanden.
  • CollectionView enthält keine integrierten Trennzeichen.
  • CollectionView löst eine Ausnahme aus, wenn diese ItemsSource ü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 DataTemplatewird. 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 CollectionViewwird 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 HeaderEigenschaften , Footer, HeaderTemplateund FooterTemplate scrollen. Weitere Informationen finden Sie unter Kopf- und Fußzeilen.
Gruppierung GroupDisplayBinding, GroupHeaderTemplate, GroupShortNameBinding, IsGroupingEnabled CollectionViewzeigt ordnungsgemäß gruppierte Daten an, indem die -Eigenschaft auf truefestgelegt 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 RefreshViewfestgelegt 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 CollectionViewdefiniert. Weitere Informationen finden Sie unter Kontextmenüs.
Scrollen ScrollTo() CollectionViewScrollTo definiert Methoden, die Elemente in die Ansicht scrollen. Weitere Informationen finden Sie unter Scrollen.