ClassRadCollectionView
Represents the ultimate data visualization control for .NET MAUI applications, providing enterprise-grade performance and functionality for displaying and interacting with collections of data.
Definition
Namespace:Telerik.Maui.Controls
Assembly:Telerik.Maui.Controls.dll
Syntax:
public class RadCollectionView : RadLayout
Inheritance: objectRadLayoutRadCollectionView
Inherited Members
Constructors
RadCollectionView()
Initializes a new instance of the RadCollectionView class with default settings. Creates an empty collection view ready to be configured with data source, layout, and templates.
Declaration
public RadCollectionView()
Fields
AutoExpandGroupsProperty
Identifies the AutoExpandGroups bindable property.
Declaration
public static readonly BindableProperty AutoExpandGroupsProperty
Field Value
BindableProperty
AutomaticLoadOnDemandTemplateProperty
Identifies the AutomaticLoadOnDemandTemplate bindable property.
Declaration
public static readonly BindableProperty AutomaticLoadOnDemandTemplateProperty
Field Value
BindableProperty
CurrentItemProperty
Identifies the CurrentItem bindable property.
Declaration
public static readonly BindableProperty CurrentItemProperty
Field Value
BindableProperty
DisplayMemberPathProperty
Identifies the DisplayMemberPath bindable property.
Declaration
public static readonly BindableProperty DisplayMemberPathProperty
Field Value
BindableProperty
DragDropBehaviorProperty
Identifies the DragDropBehavior dependency property.
Declaration
public static readonly BindableProperty DragDropBehaviorProperty
Field Value
BindableProperty
DragVisualTemplateProperty
Identifies the DragVisualTemplate dependency property.
Declaration
public static readonly BindableProperty DragVisualTemplateProperty
Field Value
BindableProperty
DropIndicatorTemplateProperty
Identifies the DropIndicatorTemplate dependency property.
Declaration
public static readonly BindableProperty DropIndicatorTemplateProperty
Field Value
BindableProperty
EmptyContentDisplayModeProperty
Identifies the EmptyContentDisplayMode bindable property.
Declaration
public static readonly BindableProperty EmptyContentDisplayModeProperty
Field Value
BindableProperty
EmptyContentTemplateProperty
Identifies the EmptyContentTemplate bindable property.
Declaration
public static readonly BindableProperty EmptyContentTemplateProperty
Field Value
BindableProperty
EnableStickyGroupHeadersProperty
Identifies the EnableStickyGroupHeaders bindable property.
Declaration
public static readonly BindableProperty EnableStickyGroupHeadersProperty
Field Value
BindableProperty
EndItemSwipeCommandProperty
Identifies the EndItemSwipeCommand dependency property.
Declaration
public static readonly BindableProperty EndItemSwipeCommandProperty
Field Value
BindableProperty
EndSwipeLengthProperty
Identifies the EndSwipeLength dependency property.
Declaration
public static readonly BindableProperty EndSwipeLengthProperty
Field Value
BindableProperty
EndSwipeTemplateProperty
Identifies the EndSwipeTemplate dependency property.
Declaration
public static readonly BindableProperty EndSwipeTemplateProperty
Field Value
BindableProperty
FilterDescriptorsProperty
Identifies the FilterDescriptors bindable property.
Declaration
public static readonly BindableProperty FilterDescriptorsProperty
Field Value
BindableProperty
FooterTemplateProperty
Identifies the FooterTemplate bindable property.
Declaration
public static readonly BindableProperty FooterTemplateProperty
Field Value
BindableProperty
GroupDescriptorsProperty
Identifies the GroupDescriptors bindable property.
Declaration
public static readonly BindableProperty GroupDescriptorsProperty
Field Value
BindableProperty
GroupHeaderTemplateProperty
Identifies the GroupHeaderTemplate bindable property.
Declaration
public static readonly BindableProperty GroupHeaderTemplateProperty
Field Value
BindableProperty
GroupTapCommandProperty
Identifies the GroupTapCommand bindable property.
Declaration
public static readonly BindableProperty GroupTapCommandProperty
Field Value
BindableProperty
GroupViewStyleProperty
Identifies the GroupViewStyle bindable property.
Declaration
public static readonly BindableProperty GroupViewStyleProperty
Field Value
BindableProperty
GroupViewStyleSelectorProperty
Identifies the GroupViewStyleSelector bindable property.
Declaration
public static readonly BindableProperty GroupViewStyleSelectorProperty
Field Value
BindableProperty
HeaderTemplateProperty
Identifies the HeaderTemplate bindable property.
Declaration
public static readonly BindableProperty HeaderTemplateProperty
Field Value
BindableProperty
HorizontalScrollBarVisibilityProperty
Identifies the HorizontalScrollBarVisibility bindable property.
Declaration
public static readonly BindableProperty HorizontalScrollBarVisibilityProperty
Field Value
BindableProperty
IsDragDropEnabledProperty
Identifies the IsDragDropEnabled dependency property.
Declaration
public static readonly BindableProperty IsDragDropEnabledProperty
Field Value
BindableProperty
IsItemSwipeEnabledProperty
Identifies the IsItemSwipeEnabled dependency property.
Declaration
public static readonly BindableProperty IsItemSwipeEnabledProperty
Field Value
BindableProperty
IsLoadOnDemandActiveProperty
Identifies the IsLoadOnDemandActive bindable property.
Declaration
public static readonly BindableProperty IsLoadOnDemandActiveProperty
Field Value
BindableProperty
IsLoadOnDemandEnabledProperty
Identifies the IsLoadOnDemandEnabled bindable property.
Declaration
public static readonly BindableProperty IsLoadOnDemandEnabledProperty
Field Value
BindableProperty
ItemTapCommandProperty
Identifies the ItemTapCommand bindable property.
Declaration
public static readonly BindableProperty ItemTapCommandProperty
Field Value
BindableProperty
ItemTemplateProperty
Identifies the ItemTemplate bindable property.
Declaration
public static readonly BindableProperty ItemTemplateProperty
Field Value
BindableProperty
ItemViewStyleProperty
Identifies the ItemViewStyle bindable property.
Declaration
public static readonly BindableProperty ItemViewStyleProperty
Field Value
BindableProperty
ItemViewStyleSelectorProperty
Identifies the ItemViewStyleSelector bindable property.
Declaration
public static readonly BindableProperty ItemViewStyleSelectorProperty
Field Value
BindableProperty
ItemsLayoutProperty
Identifies the ItemsLayout bindable property.
Declaration
public static readonly BindableProperty ItemsLayoutProperty
Field Value
BindableProperty
ItemsSourceProperty
Identifies the ItemsSource bindable property.
Declaration
public static readonly BindableProperty ItemsSourceProperty
Field Value
BindableProperty
LoadOnDemandBufferItemsCountProperty
Identifies the LoadOnDemandBufferItemsCount bindable property.
Declaration
public static readonly BindableProperty LoadOnDemandBufferItemsCountProperty
Field Value
BindableProperty
LoadOnDemandCommandProperty
Identifies the LoadOnDemandCommand bindable property.
Declaration
public static readonly BindableProperty LoadOnDemandCommandProperty
Field Value
BindableProperty
LoadOnDemandModeProperty
Identifies the LoadOnDemandMode bindable property.
Declaration
public static readonly BindableProperty LoadOnDemandModeProperty
Field Value
BindableProperty
ManualLoadOnDemandTemplateProperty
Identifies the ManualLoadOnDemandTemplate bindable property.
Declaration
public static readonly BindableProperty ManualLoadOnDemandTemplateProperty
Field Value
BindableProperty
SelectedIndexProperty
Identifies the SelectedIndex bindable property.
Declaration
public static readonly BindableProperty SelectedIndexProperty
Field Value
BindableProperty
SelectedItemProperty
Identifies the SelectedItem bindable property.
Declaration
public static readonly BindableProperty SelectedItemProperty
Field Value
BindableProperty
SelectedItemsProperty
Identifies the SelectedItems bindable property.
Declaration
public static readonly BindableProperty SelectedItemsProperty
Field Value
BindableProperty
SelectionModeProperty
Identifies the SelectionMode bindable property.
Declaration
public static readonly BindableProperty SelectionModeProperty
Field Value
BindableProperty
SortDescriptorsProperty
Identifies the SortDescriptors bindable property.
Declaration
public static readonly BindableProperty SortDescriptorsProperty
Field Value
BindableProperty
StartSwipeLengthProperty
Identifies the StartSwipeLength dependency property.
Declaration
public static readonly BindableProperty StartSwipeLengthProperty
Field Value
BindableProperty
StartSwipeTemplateProperty
Identifies the StartSwipeTemplate dependency property.
Declaration
public static readonly BindableProperty StartSwipeTemplateProperty
Field Value
BindableProperty
SwipeCompletedCommandProperty
Identifies the SwipeCompletedCommand dependency property.
Declaration
public static readonly BindableProperty SwipeCompletedCommandProperty
Field Value
BindableProperty
SwipeStartingCommandProperty
Identifies the SwipeStartingCommand dependency property.
Declaration
public static readonly BindableProperty SwipeStartingCommandProperty
Field Value
BindableProperty
SwipeThresholdProperty
Identifies the SwipeThreshold dependency property.
Declaration
public static readonly BindableProperty SwipeThresholdProperty
Field Value
BindableProperty
SwipingCommandProperty
Identifies the SwipingCommand dependency property.
Declaration
public static readonly BindableProperty SwipingCommandProperty
Field Value
BindableProperty
VerticalScrollBarVisibilityProperty
Identifies the VerticalScrollBarVisibility bindable property.
Declaration
public static readonly BindableProperty VerticalScrollBarVisibilityProperty
Field Value
BindableProperty
Properties
AutoExpandGroups
Gets or sets a value indicating whether groups in the control are automatically expanded.
AutomaticLoadOnDemandTemplate
Gets or sets the DataTemplate that defines the visual representation of the loading indicator in Automatic mode. This template is used to create the loading indicator shown while data is being loaded automatically.
Declaration
public DataTemplate AutomaticLoadOnDemandTemplate { get; set; }
Property Value
DataTemplate
CurrentItem
Gets or sets the current item in the collection view for keyboard navigation purposes. This is primarily used on desktop platforms to track which item has keyboard focus. The current item is visually highlighted and can be navigated using arrow keys.
DisplayMemberPath
Gets or sets the path to a property on the source object that will be used as the visual representation of the item. When ItemTemplate is not specified, this property path will be used to display text for each item.
DragDropBehavior
Gets or sets the custom behavior that controls drag and drop operations for collection view items. This behavior allows you to override the default drag and drop logic with custom handling for drag validation, drop positioning, and data manipulation.
Declaration
public CollectionViewDragDropBehavior DragDropBehavior { get; set; }
Property Value
DragVisualTemplate
Gets or sets the DataTemplate that defines the visual representation of an item while it is being dragged. This template determines how the dragged item appears as it follows the user's finger or cursor during the drag operation.
Declaration
public DataTemplate DragVisualTemplate { get; set; }
Property Value
DataTemplate
DropIndicatorTemplate
Gets or sets the DataTemplate that defines the visual appearance of the drop indicator. The drop indicator is shown between items during drag and drop operations to indicate where the dragged item will be placed.
Declaration
public DataTemplate DropIndicatorTemplate { get; set; }
Property Value
DataTemplate
EmptyContentDisplayMode
Gets or sets a value that determines when the EmptyContentTemplate will be displayed. Options include showing when ItemsSource is null, or when it's null or empty.
Declaration
public EmptyContentDisplayMode EmptyContentDisplayMode { get; set; }
Property Value
EmptyContentTemplate
Gets or sets the DataTemplate that defines the content displayed when the collection view has no items to show. The visibility is controlled by the EmptyContentDisplayMode property.
Declaration
public DataTemplate EmptyContentTemplate { get; set; }
Property Value
DataTemplate
EnableStickyGroupHeaders
Gets or sets a value indicating whether group headers remain fixed (sticky) at the top of the collection view while scrolling through group content. This feature is supported on iOS and Android platforms only.
Declaration
public bool EnableStickyGroupHeaders { get; set; }
Property Value
EndItemSwipeCommand
Gets the command that can be used to programmatically close any currently swiped item and return it to its normal position. This command is useful for closing swipe views from external code or user interface elements. When you execute this command you need to pass a bool parameter, and its value should be true if you want the view to be moved back to its normal position with an animation.
EndSwipeLength
Gets or sets the width that a swiped item retains when swiped from the end edge (right in LTR, left in RTL). This determines how much of the end swipe template remains visible after the swipe completes.
EndSwipeTemplate
Gets or sets the DataTemplate that defines the visual content displayed when an item is swiped from the end edge. In vertical orientation, this appears when swiping right; in horizontal orientation, when swiping down.
Declaration
public DataTemplate EndSwipeTemplate { get; set; }
Property Value
DataTemplate
FilterDescriptors
Gets the collection of FilterDescriptorBase objects that define the filtering criteria for the collection view. All filter descriptors are applied simultaneously to determine which items are visible.
Declaration
public FilterDescriptorCollection FilterDescriptors { get; }
Property Value
FooterTemplate
Gets or sets the DataTemplate that will be displayed at the end of the collection view content. This footer appears after all items and groups in the scrollable area.
Declaration
public DataTemplate FooterTemplate { get; set; }
Property Value
DataTemplate
GroupDescriptors
Gets the collection of GroupDescriptorBase objects that define the grouping criteria for the collection view. Multiple group descriptors create a hierarchical grouping structure with multiple group levels.
Declaration
public GroupDescriptorCollection GroupDescriptors { get; }
Property Value
GroupHeaderTemplate
Gets or sets the DataTemplate that defines the visual representation of group headers. Can be a DataTemplate or DataTemplateSelector for custom template selection logic. Only applicable when grouping is enabled via GroupDescriptors.
Declaration
public DataTemplate GroupHeaderTemplate { get; set; }
Property Value
DataTemplate
GroupTapCommand
Gets or sets the command that is executed when a group header is tapped. The command parameter is the GroupContext of the tapped group header.
GroupViewStyle
Gets or sets the Style that is applied to the container element generated for each group header. This style is applied to RadCollectionViewGroupView instances.
Declaration
public Style GroupViewStyle { get; set; }
Property Value
Style
GroupViewStyleSelector
Gets or sets the style selector that provides custom style-selection logic for group header container elements. Allows applying different styles to different group headers based on their group context or other criteria.
Declaration
public IStyleSelector GroupViewStyleSelector { get; set; }
Property Value
HeaderTemplate
Gets or sets the DataTemplate that will be displayed at the beginning of the collection view content. This header appears before all items and groups in the scrollable area.
Declaration
public DataTemplate HeaderTemplate { get; set; }
Property Value
DataTemplate
HorizontalScrollBarVisibility
Gets or sets the visibility of the horizontal scroll bar. Controls when the horizontal scroll indicator is shown during scrolling.
Declaration
public ScrollBarVisibility HorizontalScrollBarVisibility { get; set; }
Property Value
ScrollBarVisibility
IsDragDropEnabled
Gets or sets a value indicating whether drag and drop functionality is enabled for collection view items. When enabled, users can drag items to reorder them within the collection or move them to other drop targets.
IsItemSwipeEnabled
Gets or sets a value indicating whether items in the collection view can be swiped to reveal additional content or actions. When enabled, users can swipe items left or right to access swipe templates.
IsLoadOnDemandActive
Gets or sets a value indicating whether an asynchronous load-on-demand operation is currently in progress. This property is automatically managed when using LoadOnDemandCollection<T>. When handling LoadOnDemand event or LoadOnDemandCommand manually, set this to true before starting async operations and false after completing them to prevent multiple concurrent requests.
IsLoadOnDemandEnabled
Gets or sets a value indicating whether the load-on-demand feature is enabled. When enabled, the collection view can automatically or manually trigger loading of additional items as the user scrolls or interacts with the control. Use the LoadOnDemand event or LoadOnDemandCommand to handle loading requests, or use LoadOnDemandCollection<T> as ItemsSource.
ItemTapCommand
Gets or sets the command that is executed when a collection view item is tapped. The command parameter is the data context of the tapped item.
ItemTemplate
Gets or sets the DataTemplate that defines the visual representation of items in the collection view. Can be a DataTemplate or DataTemplateSelector for custom template selection logic.
Declaration
public DataTemplate ItemTemplate { get; set; }
Property Value
DataTemplate
ItemViewStyle
Gets or sets the Style that is applied to the container element generated for each item. This style is applied to RadCollectionViewItemView instances.
Declaration
public Style ItemViewStyle { get; set; }
Property Value
Style
ItemViewStyleSelector
Gets or sets the style selector that provides custom style-selection logic for item container elements. Allows applying different styles to different items based on their data context or other criteria.
Declaration
public IStyleSelector ItemViewStyleSelector { get; set; }
Property Value
ItemsLayout
Gets or sets the layout strategy that defines how items are arranged and displayed in the collection view. Supports linear layouts (CollectionViewLinearLayout) and grid layouts (CollectionViewGridLayout).
Declaration
public CollectionViewLayoutBase ItemsLayout { get; set; }
Property Value
ItemsSource
Gets or sets the data source used to generate the content of the collection view. This can be any object that implements IEnumerable, such as a list, array, or observable collection.
LoadOnDemandBufferItemsCount
Gets or sets the number of items before the end of the current data that will trigger automatic load-on-demand. This property only applies when LoadOnDemandMode is set to Automatic. A larger value will trigger loading earlier as the user scrolls towards the end.
Declaration
public int LoadOnDemandBufferItemsCount { get; set; }
Property Value
LoadOnDemandCommand
Gets or sets the command that is executed when a load-on-demand operation is triggered. In Manual mode, this command is executed when the user clicks the load more button. In Automatic mode, this command is executed when the user scrolls near the end of the current items.
Declaration
public ICommand LoadOnDemandCommand { get; set; }
Property Value
LoadOnDemandMode
Gets or sets the mode that determines how load-on-demand operations are triggered. Manual mode displays a clickable button, while Automatic mode triggers loading based on scroll position.
Declaration
public LoadOnDemandMode LoadOnDemandMode { get; set; }
Property Value
ManualLoadOnDemandTemplate
Gets or sets the DataTemplate that defines the visual representation of the load-on-demand control in Manual mode. This template is used to create the button or control that users click to load more items.
Declaration
public DataTemplate ManualLoadOnDemandTemplate { get; set; }
Property Value
DataTemplate
SelectedIndex
Gets or sets the zero-based index of the currently selected item. Returns -1 when no item is selected. In multiple selection mode, returns the index of the first item in the SelectedItems collection.
SelectedItem
Gets or sets the currently selected item from the data source. Returns null when no item is selected. In multiple selection mode, returns the first item in the SelectedItems collection.
SelectedItems
Gets the collection of currently selected items from the data source. This collection is automatically updated when the selection changes and supports notifications.
Declaration
public ObservableCollection<object> SelectedItems { get; }
Property Value
SelectionMode
Gets or sets the selection mode that determines how items can be selected in the collection view. Options include None (no selection), Single (one item), or Multiple (multiple items).
Declaration
public CollectionViewSelectionMode SelectionMode { get; set; }
Property Value
SortDescriptors
Gets the collection of SortDescriptorBase objects that define the sorting criteria for the collection view. Multiple sort descriptors create a multi-level sorting operation where subsequent descriptors are used as tie-breakers.
Declaration
public SortDescriptorCollection SortDescriptors { get; }
Property Value
StartSwipeLength
Gets or sets the width that a swiped item retains when swiped from the start edge (left in LTR, right in RTL). This determines how much of the start swipe template remains visible after the swipe completes.
StartSwipeTemplate
Gets or sets the DataTemplate that defines the visual content displayed when an item is swiped from the start edge. In vertical orientation, this appears when swiping left; in horizontal orientation, when swiping up.
Declaration
public DataTemplate StartSwipeTemplate { get; set; }
Property Value
DataTemplate
SwipeCompletedCommand
Gets or sets the command that is executed when an item swipe gesture has been completed. This is called after the user has finished the swipe gesture and the final state has been determined. The parameter of this command is of type CollectionViewSwipeCompletedCommandContext.
Declaration
public ICommand SwipeCompletedCommand { get; set; }
Property Value
SwipeStartingCommand
Gets or sets the command that is executed when an item swipe gesture is about to begin. This provides an opportunity to perform custom logic or cancel the swipe operation. The parameter of this command is of type CollectionViewSwipeStartingCommandContext.
Declaration
public ICommand SwipeStartingCommand { get; set; }
Property Value
SwipeThreshold
Gets or sets the minimum distance (in pixels) that a user must swipe to trigger the swipe feature. A smaller threshold makes swipes more sensitive, while a larger threshold requires more deliberate gestures.
SwipingCommand
Gets or sets the command that is executed continuously while an item is being swiped. This provides real-time feedback during the swipe gesture. The parameter of this command is of type CollectionViewSwipingCommandContext.
VerticalScrollBarVisibility
Gets or sets the visibility of the vertical scroll bar. Controls when the vertical scroll indicator is shown during scrolling.
Declaration
public ScrollBarVisibility VerticalScrollBarVisibility { get; set; }
Property Value
ScrollBarVisibility
Methods
EndItemSwipe(bool, Action)
Programmatically closes any currently swiped item and returns it to its normal position. This method provides direct control over the swipe state without requiring user interaction.
Declaration
public void EndItemSwipe(bool animate = true, Action animationFinished = null)
Parameters
animate
If true
, the closing operation will be animated; otherwise, it will be immediate. Default is true
.
animationFinished
An optional callback that is invoked when the closing animation completes. Only applicable when animate
is true
.
GetDataView()
Gets an IDataViewCollection instance that provides access to the processed data after all sorting, grouping, and filtering operations have been applied. This allows you to traverse and manipulate the data as it appears in the collection view.
Declaration
public IDataViewCollection GetDataView()
Returns
An IDataViewCollection representing the current data view state.
OnBindingContextChanged()
Invoked whenever the binding context of the control changes.
Declaration
protected override void OnBindingContextChanged()
OnHandlerChanged()
Declaration
protected override void OnHandlerChanged()
OnPropertyChanged(string)
Declaration
protected override void OnPropertyChanged(string propertyName = null)
Parameters
propertyName
ScrollItemIntoView(object, bool)
Scrolls the collection view to bring the specified data item into the visible area. If the item is not currently loaded due to data virtualization, this method will attempt to locate and scroll to it.
Declaration
public void ScrollItemIntoView(object item, bool animate = true)
Parameters
item
The data item to scroll to. This should be an item from the ItemsSource.
animate
If true
, the scroll operation will be animated; otherwise, it will be immediate. Default is true
.
Events
GroupTapped
Occurs when a user taps on a group header. The event provides the group context that was tapped.
Declaration
public event EventHandler<RadTappedEventArgs<GroupContext>> GroupTapped
Event Value
EventHandler<RadTappedEventArgs<GroupContext>>
GroupTapping
Occurs when a user is in the process of tapping on a group header. This event is raised before the GroupTapped event and can be cancelled.
Declaration
public event EventHandler<RadTappingEventArgs<GroupContext>> GroupTapping
Event Value
EventHandler<RadTappingEventArgs<GroupContext>>
ItemTapped
Occurs when a user taps on a collection view item. The event provides the tapped item's data context.
Declaration
public event EventHandler<RadTappedEventArgs<object>> ItemTapped
Event Value
EventHandler<RadTappedEventArgs<object>>
LoadOnDemand
Occurs when additional items need to be loaded into the collection view. In Manual mode, this event is raised when the user taps the load more button. In Automatic mode, this event is raised when the user scrolls near the end of the current items. Use LoadOnDemandCollection<T> as ItemsSource for automatic loading indicators, or manually handle this event by setting IsLoadOnDemandActive to true before async operations and false after adding new items to the ItemsSource.
Declaration
public event EventHandler<EventArgs> LoadOnDemand
Event Value
Scrolled
Occurs when the collection view is scrolled. Provides information about the scroll position and offset.
Declaration
public event EventHandler<ScrolledEventArgs> Scrolled
Event Value
EventHandler<ScrolledEventArgs>
SelectionChanged
Occurs when the selection in the collection view changes. Provides information about added and removed items from the selection.
Declaration
public event EventHandler<RadSelectionChangedEventArgs> SelectionChanged
Event Value
EventHandler<RadSelectionChangedEventArgs>
SwipeCompleted
Occurs when an item swipe gesture has been completed. This event is raised after the user has finished the swipe gesture and provides the final swipe state.
Declaration
public event EventHandler<CollectionViewSwipeCompletedEventArgs> SwipeCompleted
Event Value
SwipeStarting
Occurs when an item swipe gesture is about to begin. This event provides an opportunity to cancel the swipe operation before it starts.
Declaration
public event EventHandler<CollectionViewSwipeStartingEventArgs> SwipeStarting
Event Value
Swiping
Occurs while an item is being swiped. This event is raised continuously during the swipe gesture and provides real-time swipe information.
Declaration
public event EventHandler<CollectionViewSwipingEventArgs> Swiping
Event Value