Xamarin.Forms Общие сведения о CollectionView

Представление CollectionView служит для вывода списков данных с различными спецификациями макета. Она направлена на обеспечение более гибкой и производительной альтернативы ListView. Например, на следующих снимках экрана показана CollectionView вертикальная сетка двух столбцов, которая позволяет выбрать несколько элементов:

Снимок экрана: макет вертикальной сетки CollectionView в iOS и Android

CollectionView следует использовать для представления списков данных, требующих прокрутки или выделения. Привязываемый макет можно использовать, если отображаемые данные не требуют прокрутки или выделения. Дополнительные сведения см. в Xamarin.Formsразделе "Привязываемые макеты".

CollectionView доступна в Xamarin.Forms версии 4.3.

Внимание

CollectionViewдоступен в iOS и Android, но только частично доступен на универсальная платформа Windows.

Различия в CollectionView и ListView

CollectionViewListView Хотя и API похожи, существуют некоторые заметные различия:

  • CollectionView имеет гибкую модель макета, которая позволяет представлять данные вертикально или горизонтально в списке или сетке.
  • CollectionView поддерживает один и несколько выборок.
  • CollectionView не имеет понятия о ячейках. Вместо этого шаблон данных используется для определения внешнего вида каждого элемента данных в списке.
  • CollectionView автоматически использует виртуализацию, предоставляемую базовыми собственными элементами управления.
  • CollectionView уменьшает поверхность ListViewAPI . Многие свойства и события из ListView них отсутствуют CollectionView.
  • CollectionView не включает встроенные разделители.
  • CollectionView вызовет исключение, если оно ItemsSource обновляется из потока пользовательского интерфейса.

Переход из ListView в CollectionView

ListView Реализации в существующих Xamarin.Forms приложениях можно перенести в CollectionView реализации с помощью следующей таблицы:

Концепция API ListView CollectionView
Data ItemsSource A CollectionView заполняется данными, задав его ItemsSource свойство. Дополнительные сведения см. в разделе "Заполнение CollectionView данными".
Внешний вид элемента ItemTemplate Внешний вид каждого элемента в объекте CollectionView можно определить, задав свойству ItemTemplate значение DataTemplate. Дополнительные сведения см. в разделе "Определение внешнего вида элемента".
Cells TextCell, , ImageCellViewCell CollectionView не имеет понятия ячеек, поэтому понятия индикаторов раскрытия не имеют. Вместо этого шаблон данных используется для определения внешнего вида каждого элемента данных в списке.
Разделители строк SeparatorColor, SeparatorVisibility CollectionView не включает встроенные разделители. Их можно указать при необходимости в шаблоне элемента.
Выбор SelectionMode, SelectedItem CollectionView поддерживает один и несколько выборок. Дополнительные сведения см. в разделе Xamarin.Forms "Выбор CollectionView".
Высота строки HasUnevenRows, RowHeight В строке CollectionViewвысоты каждого элемента определяется свойством ItemSizingStrategy . Дополнительные сведения см. в разделе "Размер элементов".
Кэширование CachingStrategy CollectionView автоматически использует виртуализацию, предоставляемую базовыми собственными элементами управления.
Колонтитулы Header, , HeaderElementFooterHeaderTemplateFooterElement,FooterTemplate CollectionViewможет представлять верхний и нижний колонтитул, прокручиваемый с элементами в списке, с помощью Headerсвойств FooterHeaderTemplate, и FooterTemplate т. е. Дополнительные сведения см. в разделе "Верхние и нижние колонтитулы".
Группировка GroupDisplayBinding, , GroupHeaderTemplateGroupShortNameBindingIsGroupingEnabled CollectionView отображает правильно сгруппированные данные, задав для свойства значение IsGroupedtrue. Верхние и групповые нижние колонтитулы групп можно настроить, задав GroupHeaderTemplate объекты и GroupFooterTemplate свойства DataTemplate . Дополнительные сведения см. в разделе Xamarin.Forms "Группирование CollectionView".
Потяните, чтобы обновить IsPullToRefreshEnabled, IsRefreshing, RefreshAllowedRefreshCommandRefreshControlColorBeginRefresh()EndRefresh() Вытягивание для обновления функций поддерживается путем установки CollectionView в качестве дочернего RefreshViewэлемента. Дополнительные сведения см. в разделе "Вытягивание" для обновления.
Элементы контекстного меню ContextActions Элементы контекстного меню поддерживаются, задав SwipeView в качестве корневого представления в DataTemplate представлении, определяющем внешний вид каждого элемента данных в элементе CollectionView. Дополнительные сведения см. в разделе Контекстные меню.
Прокрутка ScrollTo() CollectionViewScrollTo определяет методы, которые прокручивают элементы в представление. Дополнительные сведения см. в разделе " Прокрутка".