CollectionView

Bläddra bland exempel. Bläddra bland exempel

.NET Multi-platform App UI (.NET MAUI) CollectionView är en vy för att presentera listor med data med olika layoutspecifikationer. Det syftar till att tillhandahålla ett mer flexibelt och högpresterande alternativ till ListView.

Följande skärmbild visar en CollectionView som använder ett lodrätt rutnät med två kolumner och tillåter flera val:

Skärmbild av en layout för lodrätt rutnät i CollectionView.

CollectionView ska användas för att presentera listor med data som kräver rullning eller markering. En bindbar layout kan användas när data som ska visas inte kräver rullning eller markering. Mer information finns i BindableLayout.

Anmärkning

På iOS och Mac Catalyst är de optimerade hanterare som var valfria i .NET 9 standardhanterare för CollectionView i .NET 10, vilket ger bättre prestanda och stabilitet.

Återgå till .NET 9-beteende

Vi rekommenderar att du använder den nya hanteraren för CollectionView, men om du vill välja bort det här beteendet och återgå till .NET 9-hanteraren kan du använda koden nedan i .MauiProgram.cs

#if IOS || MACCATALYST
builder.ConfigureMauiHandlers(handlers =>
{
    handlers.AddHandler<Microsoft.Maui.Controls.CollectionView, Microsoft.Maui.Controls.Handlers.Items.CollectionViewHandler>();
});
#endif

Skillnader i CollectionView och ListView

Api:erna CollectionView och ListView är liknande, men det finns några anmärkningsvärda skillnader:

  • CollectionView har en flexibel layoutmodell som gör att data kan visas lodrätt eller vågrätt i en lista eller ett rutnät.
  • CollectionView stöder enkel och flera val.
  • CollectionView har ingen uppfattning om celler. I stället används en datamall för att definiera utseendet på varje dataobjekt i listan.
  • CollectionView använder automatiskt den virtualisering som tillhandahålls av de underliggande interna kontrollerna.
  • CollectionView minskar API-ytan för ListView. Många egenskaper och händelser från ListView finns inte i CollectionView.
  • CollectionView innehåller inte inbyggda avgränsare.
  • CollectionView utlöser ett undantag om det ItemsSource uppdateras från användargränssnittstråden.

Flytta från ListView till CollectionView

ListView implementeringar kan migreras till CollectionView implementeringar med hjälp av följande tabell:

Begrepp ListView API CollectionView
Uppgifter ItemsSource A CollectionView fylls med data genom att dess egenskap anges ItemsSource . Mer information finns i Fylla i en CollectionView med data.
Objektutseende ItemTemplate Utseendet på varje objekt i en CollectionView kan definieras genom att ställa in egenskapen ItemTemplate på en DataTemplate. Mer information finns i Definiera objektutseende.
Celler TextCell, ImageCellViewCell CollectionView har ingen uppfattning om celler och därför inget begrepp om indikatorer för offentliggörande. I stället används en datamall för att definiera utseendet på varje dataobjekt i listan.
Radavgränsare SeparatorColor, SeparatorVisibility CollectionView innehåller inte inbyggda avgränsare. Dessa kan anges, om så önskas, i objektmallen.
Urval SelectionMode, SelectedItem CollectionView stöder enkel och flera val. Mer information finns i Konfigurera markering av CollectionView-objekt.
Radhöjd HasUnevenRows, RowHeight I en CollectionViewbestäms radhöjden för varje objekt av ItemSizingStrategy egenskapen . Mer information finns i Storlek på objekt.
Cache CachingStrategy CollectionView använder automatiskt den virtualisering som tillhandahålls av de underliggande interna kontrollerna.
Sidhuvuden och sidfötter Header, HeaderElement, HeaderTemplate, Footer, FooterElementFooterTemplate CollectionView kan visa ett sidhuvud och en sidfot som rullar med objekten i listan, via Headeregenskaperna , Footer, HeaderTemplateoch FooterTemplate . Mer information finns i Sidhuvuden och sidfötter.
Gruppering GroupDisplayBinding, GroupHeaderTemplate, , GroupShortNameBindingIsGroupingEnabled CollectionView visar korrekt grupperade data genom att ange dess IsGrouped egenskap till true. Grupprubriker och gruppsidfötter kan anpassas genom att ställa in GroupHeaderTemplate egenskaperna och GroupFooterTemplateDataTemplate objekt. Mer information finns i Visa grupperade data i en CollectionView.
Dra för att uppdatera IsPullToRefreshEnabled, IsRefreshing, RefreshAllowed, RefreshCommand, RefreshControlColor, , , BeginRefresh()EndRefresh() Pull to refresh-funktioner stöds genom att ange en CollectionView som underordnad till en RefreshView. Mer information finns i Hämta för att uppdatera.
Kontextmenyobjekt ContextActions Snabbmenyobjekt stöds genom att ange en SwipeView som rotvy i DataTemplate som definierar utseendet på varje dataobjekt i CollectionView. Mer information finns i Snabbmenyer.
Rullning ScrollTo() CollectionView definierar ScrollTo metoder som rullar objekt i vyn. Mer information finns i Kontrollera rullning i en CollectionView.