ListView Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
An ItemsView<TVisual> that displays a collection of data as a vertical list.
[Xamarin.Forms.RenderWith(typeof(Xamarin.Forms.Platform._ListViewRenderer))]
public class ListView : Xamarin.Forms.ItemsView<Xamarin.Forms.Cell>, Xamarin.Forms.IElementConfiguration<Xamarin.Forms.ListView>, Xamarin.Forms.IListViewController
type ListView = class
inherit ItemsView<Cell>
interface IListViewController
interface IViewController
interface IVisualElementController
interface IElementController
interface IElementConfiguration<ListView>
- Inheritance
- Attributes
- Implements
Remarks
The following example shows a basic use:
using System;
using System.Collections.Generic;
using Xamarin.Forms;
namespace FormsGallery
{
class ListViewDemoPage : ContentPage
{
class Person
{
public Person(string name, DateTime birthday, Color favoriteColor)
{
this.Name = name;
this.Birthday = birthday;
this.FavoriteColor = favoriteColor;
}
public string Name { private set; get; }
public DateTime Birthday { private set; get; }
public Color FavoriteColor { private set; get; }
};
public ListViewDemoPage()
{
Label header = new Label
{
Text = "ListView",
FontSize = Device.GetNamedSize (NamedSize.Large, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
};
// Define some data.
List<Person> people = new List<Person>
{
new Person("Abigail", new DateTime(1975, 1, 15), Color.Aqua),
new Person("Bob", new DateTime(1976, 2, 20), Color.Black),
// ...etc.,...
new Person("Yvonne", new DateTime(1987, 1, 10), Color.Purple),
new Person("Zachary", new DateTime(1988, 2, 5), Color.Red)
};
// Create the ListView.
ListView listView = new ListView
{
// Source of data items.
ItemsSource = people,
// Define template for displaying each item.
// (Argument of DataTemplate constructor is called for
// each item; it must return a Cell derivative.)
ItemTemplate = new DataTemplate(() =>
{
// Create views with bindings for displaying each property.
Label nameLabel = new Label();
nameLabel.SetBinding(Label.TextProperty, "Name");
Label birthdayLabel = new Label();
birthdayLabel.SetBinding(Label.TextProperty,
new Binding("Birthday", BindingMode.OneWay,
null, null, "Born {0:d}"));
BoxView boxView = new BoxView();
boxView.SetBinding(BoxView.ColorProperty, "FavoriteColor");
// Return an assembled ViewCell.
return new ViewCell
{
View = new StackLayout
{
Padding = new Thickness(0, 5),
Orientation = StackOrientation.Horizontal,
Children =
{
boxView,
new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Spacing = 0,
Children =
{
nameLabel,
birthdayLabel
}
}
}
}
};
})
};
// Accomodate iPhone status bar.
this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5);
// Build the page.
this.Content = new StackLayout
{
Children =
{
header,
listView
}
};
}
}
}
Constructors
ListView() |
Creates and initializes a new instance of the ListView class. |
ListView(ListViewCachingStrategy) |
Creates and initializes a new instance of the ListView class, with the specified caching strategy. |
Fields
Properties
AnchorX |
Gets or sets the X component of the center point for any transform, relative to the bounds of the element. This is a bindable property. (Inherited from VisualElement) |
AnchorY |
Gets or sets the Y component of the center point for any transform, relative to the bounds of the element. This is a bindable property. (Inherited from VisualElement) |
AutomationId |
Gets or sets a value that allows the automation framework to find and interact with this element. (Inherited from Element) |
Background | (Inherited from VisualElement) |
BackgroundColor |
Gets or sets the color which will fill the background of a VisualElement. This is a bindable property. (Inherited from VisualElement) |
Batched |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
Behaviors |
Gets the list of Behaviors associated to this element. This is a bindable property. (Inherited from VisualElement) |
BindingContext |
Gets or sets object that contains the properties that will be targeted by the bound properties that belong to this BindableObject. (Inherited from BindableObject) |
Bounds |
Gets the bounds of the element. (Inherited from VisualElement) |
CachingStrategy |
For internal use by the Xamarin.Forms platform. |
class | (Inherited from NavigableElement) |
ClassId |
Gets or sets a value used to identify a collection of semantically similar elements. (Inherited from Element) |
Clip | (Inherited from VisualElement) |
DisableLayout |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
Dispatcher | (Inherited from BindableObject) |
EffectControlProvider |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
Effects |
A list of the effects that are applied to this item. (Inherited from Element) |
FlowDirection |
Gets or sets the layout flow direction. (Inherited from VisualElement) |
Footer |
Gets or sets the string, binding, or view that will be displayed at the bottom of the list view. |
FooterElement |
For internal use by the Xamarin.Forms platform. |
FooterTemplate |
Gets or sets a data template to use to format a data object for display at the bottom of the list view. |
GestureController |
Gets the gesture controller for the view. (Inherited from View) |
GestureRecognizers |
The collection of gesture recognizers associated with this view. (Inherited from View) |
GroupDisplayBinding |
Gets or sets the binding to use for displaying the group header. |
GroupHeaderTemplate |
Gets or sets a DataTemplate for group headers. |
GroupShortNameBinding |
Gets or sets a binding for the name to display in grouped jump lists. |
HasUnevenRows |
Gets or sets a Boolean value that indicates whether this ListView element has uneven rows. |
Header |
Gets or sets the string, binding, or view that will be displayed at the top of the list view. |
HeaderElement |
For internal use by the Xamarin.Forms platform. |
HeaderTemplate |
Gets or sets a data template to use to format a data object for display at the top of the list view. |
Height |
Gets the current rendered height of this element. This is a read-only bindable property. (Inherited from VisualElement) |
HeightRequest |
Gets or sets the desired height override of this element. (Inherited from VisualElement) |
HorizontalOptions |
Gets or sets the LayoutOptions that define how the element gets laid in a layout cycle. This is a bindable property. (Inherited from View) |
HorizontalScrollBarVisibility | |
Id |
Gets a value that can be used to uniquely identify an element through the run of an application. (Inherited from Element) |
InputTransparent |
Gets or sets a value indicating whether this element should be involved in the user interaction cycle. This is a bindable property. (Inherited from VisualElement) |
IsEnabled |
Gets or sets a value indicating whether this element is enabled in the user interface. This is a bindable property. (Inherited from VisualElement) |
IsFocused |
Gets a value indicating whether this element is focused currently. This is a bindable property. (Inherited from VisualElement) |
IsGroupingEnabled |
Gets or sets whether or not grouping is enabled for ListView. |
IsInNativeLayout |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsNativeStateConsistent |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsPlatformEnabled |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsPullToRefreshEnabled |
Gets or sets a value that tells whether the user can swipe down to cause the application to refresh. |
IsRefreshing |
Gets or sets a value that tells whether the list view is currently refreshing. |
IsTabStop |
Gets or sets a value that indicates whether this element is included in tab navigation. This is a bindable property. (Inherited from VisualElement) |
IsVisible |
Gets or sets a value that determines whether this elements should be part of the visual tree or not. This is a bindable property. (Inherited from VisualElement) |
ItemsSource |
Gets or sets the source of items to template and display. (Inherited from ItemsView<TVisual>) |
ItemTemplate |
Gets or sets the DataTemplate to apply to the ItemsSource. (Inherited from ItemsView<TVisual>) |
LogicalChildren |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
Margin |
Gets or sets the margin for the view. (Inherited from View) |
MinimumHeightRequest |
Gets or sets a value which overrides the minimum height the element will request during layout. (Inherited from VisualElement) |
MinimumWidthRequest |
Gets or sets a value which overrides the minimum width the element will request during layout. (Inherited from VisualElement) |
Navigation | (Inherited from NavigableElement) |
NavigationProxy | (Inherited from NavigableElement) |
Opacity |
Gets or sets the opacity value applied to the element when it is rendered. This is a bindable property. (Inherited from VisualElement) |
Parent |
Gets or sets the parent element of the element. (Inherited from Element) |
ParentView |
Obsolete.
Gets the element which is the closest ancestor of this element that is a VisualElement. (Inherited from Element) |
Platform |
Obsolete.
(Inherited from Element)
|
RealParent |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
RefreshAllowed |
For internal use by the Xamarin.Forms platform. |
RefreshCommand |
Gets or sets the command that is run when the list view enters the refreshing state. |
RefreshControlColor | |
Resources |
Gets or sets the local resource dictionary. (Inherited from VisualElement) |
Rotation |
Gets or sets the rotation (in degrees) about the Z-axis (affine rotation) when the element is rendered. (Inherited from VisualElement) |
RotationX |
Gets or sets the rotation (in degrees) about the X-axis (perspective rotation) when the element is rendered. (Inherited from VisualElement) |
RotationY |
Gets or sets the rotation (in degrees) about the Y-axis (perspective rotation) when the element is rendered. (Inherited from VisualElement) |
RowHeight |
Gets or sets a value that represents the height of a row. |
Scale |
Gets or sets the scale factor applied to the element. (Inherited from VisualElement) |
ScaleX |
Gets or sets a scale value to apply to the X direction. (Inherited from VisualElement) |
ScaleY |
Gets or sets a scale value to apply to the Y direction. (Inherited from VisualElement) |
SelectedItem |
Gets or sets the currently selected item from the ItemsSource. |
SelectionMode |
Gets or sets a value that controls whether and how many items can be selected. |
SeparatorColor |
Gets or sets the color of the bar that separates list items. |
SeparatorVisibility |
Gets or sets a value that tells whether separators are visible between items. |
Style | (Inherited from NavigableElement) |
StyleClass | (Inherited from NavigableElement) |
StyleId |
Gets or sets a user defined value to uniquely identify the element. (Inherited from Element) |
TabIndex | (Inherited from VisualElement) |
TemplatedItems |
Gets the list of templated items. (Inherited from ItemsView<TVisual>) |
TranslationX |
Gets or sets the X translation delta of the element. (Inherited from VisualElement) |
TranslationY |
Gets or sets the Y translation delta of the element. (Inherited from VisualElement) |
Triggers |
Gets the list of Trigger associated to this element. This is a bindable property. (Inherited from VisualElement) |
VerticalOptions |
Gets or sets the LayoutOptions that define how the element gets laid in a layout cycle. This is a bindable property. (Inherited from View) |
VerticalScrollBarVisibility | |
Visual | (Inherited from VisualElement) |
Width |
Gets the current rendered width of this element. This is a read-only bindable property. (Inherited from VisualElement) |
WidthRequest |
Gets or sets the desired width override of this element. (Inherited from VisualElement) |
X |
Gets the current X position of this element. This is a read-only bindable property. (Inherited from VisualElement) |
Y |
Gets the current Y position of this element. This is a read-only bindable property. (Inherited from VisualElement) |
Methods
ApplyBindings() |
Apply the bindings to BindingContext. (Inherited from BindableObject) |
BatchBegin() |
Signals the start of a batch of changes to the elements properties. (Inherited from VisualElement) |
BatchCommit() |
Signals the end of a batch of commands to the element and that those commands should now be committed. (Inherited from VisualElement) |
BeginRefresh() |
Enters the refreshing state by setting the IsRefreshing property to |
ChangeVisualState() |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
ClearValue(BindableProperty) |
Clears any value set by SetValue for |
ClearValue(BindablePropertyKey) |
Clears any value set by SetValue for the property that is identified by |
CoerceValue(BindableProperty) | (Inherited from BindableObject) |
CoerceValue(BindablePropertyKey) | (Inherited from BindableObject) |
CreateDefault(Object) |
Creates an instance of the default visual representation of an item. |
CreateDefaultCell(Object) |
For internal use by the Xamarin.Forms platform. |
Descendants() |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
EffectIsAttached(String) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
EndRefresh() |
Exits the refreshing state by setting the IsRefreshing property to |
FindByName(String) |
Returns the element that has the specified name. (Inherited from Element) |
Focus() |
Attemps to set focus to this element. (Inherited from VisualElement) |
GetChildElements(Point) |
Returns the child elements that are visually beneath the specified |
GetDisplayTextFromGroup(Object) |
For internal use by the Xamarin.Forms platform. |
GetSizeRequest(Double, Double) |
Obsolete.
Returns the SizeRequest of the element. Calling this method begins the measure pass of a layout cycle. (Inherited from VisualElement) |
GetValue(BindableProperty) |
Returns the value that is contained in the BindableProperty. (Inherited from BindableObject) |
GetValues(BindableProperty, BindableProperty, BindableProperty) |
Obsolete.
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
GetValues(BindableProperty, BindableProperty) |
Obsolete.
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
InvalidateMeasure() |
Method that is called to invalidate the layout of this VisualElement. Raises the MeasureInvalidated event. (Inherited from VisualElement) |
InvalidateMeasureNonVirtual(InvalidationTrigger) |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
IsSet(BindableProperty) |
Returns |
Layout(Rectangle) |
Updates the bounds of the element during the layout cycle. (Inherited from VisualElement) |
Measure(Double, Double, MeasureFlags) |
Returns the minimum size that a visual element needs in order to be displayed on the device. (Inherited from VisualElement) |
NativeSizeChanged() |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
NotifyRowTapped(Int32, Cell, Boolean) | |
NotifyRowTapped(Int32, Cell) |
For internal use by the Xamarin.Forms platform. |
NotifyRowTapped(Int32, Int32, Cell, Boolean) | |
NotifyRowTapped(Int32, Int32, Cell) |
For internal use by the Xamarin.Forms platform. |
On<T>() |
Returns the platform-specific instance of this ListView, on which a platform-specific method may be called. |
OnBindingContextChanged() |
Method that is called when the binding context changes. |
OnChildAdded(Element) |
Application developers can override this method to respond when a child is added. (Inherited from VisualElement) |
OnChildRemoved(Element, Int32) | (Inherited from VisualElement) |
OnChildRemoved(Element) |
Obsolete.
Application developers can override this method to respond when a child is removed. (Inherited from VisualElement) |
OnChildrenReordered() |
Invoked whenever the ChildrenReordered event is about to be emitted. Implement this method to add class handling for this event. (Inherited from VisualElement) |
OnMeasure(Double, Double) |
Method that is called when a layout measurement happens. (Inherited from VisualElement) |
OnParentSet() | (Inherited from NavigableElement) |
OnPropertyChanged(String) |
Method that is called when a bound property is changed. (Inherited from Element) |
OnPropertyChanging(String) |
Call this method from a child class to notify that a change is going to happen on a property. (Inherited from BindableObject) |
OnSizeAllocated(Double, Double) |
This method is called when the size of the element is set during a layout cycle. This method is called directly before the SizeChanged event is emitted. Implement this method to add class handling for this event. (Inherited from VisualElement) |
OnSizeRequest(Double, Double) |
Obsolete.
Method that is called when a size request is made. |
OnTabIndexPropertyChanged(Int32, Int32) | (Inherited from VisualElement) |
OnTabStopPropertyChanged(Boolean, Boolean) | (Inherited from VisualElement) |
RemoveBinding(BindableProperty) |
Removes a previously set binding. (Inherited from BindableObject) |
RemoveDynamicResource(BindableProperty) |
Removes a previously set dynamic resource (Inherited from Element) |
ScrollTo(Object, Object, ScrollToPosition, Boolean) |
Scrolls the ListView to the |
ScrollTo(Object, ScrollToPosition, Boolean) |
Scrolls the ListView to the |
SendCellAppearing(Cell) |
For internal use by the Xamarin.Forms platform. |
SendCellDisappearing(Cell) |
For internal use by the Xamarin.Forms platform. |
SendRefreshing() |
For internal use by the Xamarin.Forms platform. |
SendScrolled(ScrolledEventArgs) | |
SetBinding(BindableProperty, BindingBase) |
Assigns a binding to a property. (Inherited from BindableObject) |
SetDynamicResource(BindableProperty, String) |
Sets the BindableProperty property of this element to be updated via the DynamicResource with the provided key. (Inherited from Element) |
SetupContent(Cell, Int32) |
Application developers override this method to register event handlers for list view items. |
SetupContent(TVisual, Int32) |
Performs any additional setup for the content at creation time. (Inherited from ItemsView<TVisual>) |
SetValue(BindableProperty, Object) |
Sets the value of the specified property. (Inherited from BindableObject) |
SetValue(BindablePropertyKey, Object) |
Sets the value of the propertyKey. (Inherited from BindableObject) |
SetValueCore(BindableProperty, Object, SetValueFlags) |
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
SetValueFromRenderer(BindableProperty, Object) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
SetValueFromRenderer(BindablePropertyKey, Object) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
SizeAllocated(Double, Double) |
SizeAllocated is called during a layout cycle to signal the start of a sub-tree layout. (Inherited from VisualElement) |
TabIndexDefaultValueCreator() | (Inherited from VisualElement) |
TabStopDefaultValueCreator() | (Inherited from VisualElement) |
UnapplyBindings() |
Unapplies all previously set bindings. (Inherited from BindableObject) |
Unfocus() |
Unsets focus to this element. (Inherited from VisualElement) |
UnhookContent(Cell) |
Application developers override this method to unregister event handlers for list view items that they registered in SetupContent(Cell, Int32). |
UnhookContent(TVisual) |
Application developers override this method to unregister event handlers for items that they registered in SetupContent(TVisual, Int32). (Inherited from ItemsView<TVisual>) |
ValidateItemTemplate(DataTemplate) |
Returns |
Events
BatchCommitted |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
BindingContextChanged |
Raised whenever the BindingContext property changes. (Inherited from BindableObject) |
ChildAdded |
Occurs whenever a child element is added to the element. (Inherited from Element) |
ChildRemoved |
Occurs whenever a child element is removed from the element. (Inherited from Element) |
ChildrenReordered |
Occurs when the Children of a VisualElement have been re-ordered. (Inherited from VisualElement) |
DescendantAdded |
Occurs whenever a child element is added to the elements subtree. (Inherited from Element) |
DescendantRemoved |
Occurs whenever a child element is removed from the elements subtree. (Inherited from Element) |
FocusChangeRequested |
For internal use by the Xamarin.Forms platform. (Inherited from VisualElement) |
Focused |
Occurs when the element receives focus. (Inherited from VisualElement) |
ItemAppearing |
Occurs when the visual representation of an item is being added to the visual layout. |
ItemDisappearing |
Occurs when the visual representation of an item is being removed from the visual layout. |
ItemSelected |
Event that is raised when a new item is selected. |
ItemTapped |
Event that is raised when an item is tapped. |
MeasureInvalidated |
Event that is raised when the layout of a visual element is invalidated. (Inherited from VisualElement) |
PlatformSet |
Obsolete.
(Inherited from Element)
|
PropertyChanged |
Raised when a property has changed. (Inherited from BindableObject) |
PropertyChanging |
Raised when a property is about to change. (Inherited from BindableObject) |
Refreshing |
Event that is raised when the list view refreshes. |
Scrolled | |
ScrollToRequested |
For internal use by the Xamarin.Forms platform. |
SizeChanged |
Occurs when either the Width or the Height properties change value on this element. (Inherited from VisualElement) |
Unfocused |
Occurs when the element loses focus. (Inherited from VisualElement) |
Explicit Interface Implementations
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) |
For internal use by the Xamarin.Forms platform. (Inherited from BindableObject) |
IElementController.SetValueFromRenderer(BindableProperty, Object) |
For internal use by the Xamarin.Forms platform. (Inherited from Element) |
IGestureController.CompositeGestureRecognizers |
For internal use by the Xamarin.Forms platform. (Inherited from View) |
IItemsView<TVisual>.CreateDefault(Object) |
Creates a default TVisual by using |
IItemsView<TVisual>.SetupContent(TVisual, Int32) |
CInternal use only. (Inherited from ItemsView<TVisual>) |
IItemsView<TVisual>.UnhookContent(TVisual) |
Internal use only. (Inherited from ItemsView<TVisual>) |
INameScope.RegisterName(String, Object) |
For internal use only. (Inherited from Element) |
ITemplatedItemsView<TVisual>.ListProxy |
This interface is for internal use by platform renderers. (Inherited from ItemsView<TVisual>) |
ITemplatedItemsView<TVisual>.TemplatedItems |
This interface is for internal use by platform renderers. (Inherited from ItemsView<TVisual>) |
IVisualElementController.EffectiveFlowDirection |
Gets the effective visual flow direction for the element on the platform, taking into account the locale and logical flow settings. (Inherited from VisualElement) |
IVisualElementController.InvalidateMeasure(InvalidationTrigger) |
This method is for internal use. (Inherited from VisualElement) |