Xamarin.Forms Wprowadzenie do obiektu CollectionView
CollectionView
to widok do prezentowania list danych przy użyciu różnych specyfikacji układu. Ma na celu zapewnienie bardziej elastycznej i wydajnej alternatywy dla ListView
programu . Na przykład na poniższych zrzutach ekranu przedstawiono obiekt CollectionView
, który używa dwukolumny pionowej siatki i umożliwia wybór wielu elementów:
CollectionView
należy użyć do prezentowania list danych, które wymagają przewijania lub zaznaczenia. Układ możliwy do powiązania może być używany, gdy wyświetlane dane nie wymagają przewijania ani zaznaczenia. Aby uzyskać więcej informacji, zobacz Bindable Layouts in Xamarin.Forms.
CollectionView
jest dostępny w wersji Xamarin.Forms 4.3.
Ważne
CollectionView
jest dostępny w systemach iOS i Android, ale jest dostępny tylko częściowo w platforma uniwersalna systemu Windows.
Różnice w elementy CollectionView i ListView
CollectionView
Chociaż interfejsy API i ListView
są podobne, istnieją pewne istotne różnice:
CollectionView
ma elastyczny model układu, który umożliwia prezentowanie danych w pionie lub w poziomie na liście lub w siatce.CollectionView
obsługuje wybór pojedynczy i wielokrotny.CollectionView
nie ma pojęcia komórek. Zamiast tego szablon danych służy do definiowania wyglądu każdego elementu danych na liście.CollectionView
automatycznie wykorzystuje wirtualizację dostarczaną przez podstawowe kontrolki natywne.CollectionView
zmniejsza powierzchnię interfejsu API .ListView
Wiele właściwości i zdarzeń zListView
programu nie jest obecnych w plikuCollectionView
.CollectionView
nie zawiera wbudowanych separatorów.CollectionView
zgłosi wyjątek, jeśli zostanieItemsSource
zaktualizowany wątek interfejsu użytkownika.
Przechodzenie z widoku ListView do obiektu CollectionView
ListView
Implementacje istniejących Xamarin.Forms aplikacji można migrować do CollectionView
implementacji za pomocą poniższej tabeli:
Pojęcie | Interfejs API ListView | CollectionView |
---|---|---|
Data | ItemsSource |
Obiekt CollectionView jest wypełniany danymi, ustawiając jego ItemsSource właściwość. Aby uzyskać więcej informacji, zobacz Wypełnianie obiektu CollectionView danymi. |
Wygląd elementu | ItemTemplate |
Wygląd każdego elementu w obiekcie CollectionView można zdefiniować, ustawiając ItemTemplate właściwość na DataTemplate wartość . Aby uzyskać więcej informacji, zobacz Definiowanie wyglądu elementu. |
Cells | TextCell , , ImageCell ViewCell |
CollectionView nie ma pojęcia komórek, a zatem nie ma pojęcia wskaźników ujawnienia. Zamiast tego szablon danych służy do definiowania wyglądu każdego elementu danych na liście. |
Separatory wierszy | SeparatorColor , SeparatorVisibility |
CollectionView nie zawiera wbudowanych separatorów. Można je podać w razie potrzeby w szablonie elementu. |
Wybór | SelectionMode , SelectedItem |
CollectionView obsługuje wybór pojedynczy i wielokrotny. Aby uzyskać więcej informacji, zobacz Xamarin.Forms CollectionView Selection (Wybór obiektu CollectionView). |
Wysokość wiersza | HasUnevenRows , RowHeight |
W elemencie CollectionView wysokość wiersza każdego elementu jest określana ItemSizingStrategy przez właściwość . Aby uzyskać więcej informacji, zobacz Ustalanie rozmiaru elementu. |
Buforowanie | CachingStrategy |
CollectionView automatycznie używa wirtualizacji udostępnianej przez podstawowe kontrolki natywne. |
Nagłówki i stopki | Header , , HeaderElement , HeaderTemplate , Footer , , FooterElement FooterTemplate |
CollectionView Może przedstawiać nagłówek i stopkę, które przewijają elementy na liście za pośrednictwem Header właściwości , Footer , HeaderTemplate i FooterTemplate . Aby uzyskać więcej informacji, zobacz Nagłówki i stopki. |
Grupowanie | GroupDisplayBinding , , GroupHeaderTemplate , , GroupShortNameBinding IsGroupingEnabled |
CollectionView Wyświetla poprawnie zgrupowane dane, ustawiając jego IsGrouped właściwość na true . Nagłówki grup i stopki grup można dostosować, ustawiając GroupHeaderTemplate właściwości i GroupFooterTemplate na DataTemplate obiekty. Aby uzyskać więcej informacji, zobacz Xamarin.Forms CollectionView Grouping (Grupowanie obiektu CollectionView). |
Przeciągnij, aby odświeżyć | IsPullToRefreshEnabled , IsRefreshing , , RefreshAllowed , RefreshCommand , RefreshControlColor , , BeginRefresh() EndRefresh() |
Funkcja ściągania do odświeżania jest obsługiwana przez ustawienie elementu CollectionView podrzędnego elementu RefreshView . Aby uzyskać więcej informacji, zobacz Ściąganie, aby odświeżyć. |
Elementy menu kontekstowego | ContextActions |
Elementy menu kontekstowego są obsługiwane przez ustawienie SwipeView jako widoku głównego w DataTemplate obiekcie , który definiuje wygląd każdego elementu danych w elemencie CollectionView . Aby uzyskać więcej informacji, zobacz Menu kontekstowe. |
Przewijanie | ScrollTo() |
CollectionView definiuje ScrollTo metody, które przewijają elementy do widoku. Aby uzyskać więcej informacji, zobacz Przewijanie. |