| Name |
Type |
Default value |
Description |
|---|
| AlignToEnd |
bool |
false |
Pushes the items to the end (bottom, or the right in horizontal mode) of the viewport while they are too few to fill it, the way a chat conversation starts at the bottom. Pairs naturally with Reversed. |
| ChildContent |
RenderFragment<TItem>? |
null |
The custom template to render each item. |
| Classes |
BitVirtualizeClassStyles? |
null |
Custom CSS classes for different parts of the BitVirtualize. |
| Dynamic |
bool |
false |
Enables dynamic item sizing in which each rendered item gets measured in the browser and its real size gets cached, using the EstimatedItemSize for the items that have not been measured yet. |
| EmptyTemplate |
RenderFragment? |
null |
The custom template to render when there is no item available. |
| EstimatedItemSize |
float |
50 |
The assumed size in pixels of the items that have not been measured yet in dynamic mode. |
| FooterTemplate |
RenderFragment? |
null |
The custom template to render after the last item, inside the scroll container (for example, a loading indicator at the end of an infinite list). |
| HeaderTemplate |
RenderFragment? |
null |
The custom template to render before the first item, inside the scroll container. |
| Horizontal |
bool |
false |
Renders the items horizontally so the viewport scrolls along the x-axis. |
| InitialIndex |
int? |
null |
The index of the item to scroll to on the first render. Ignored when Reversed is set. |
| IsStickyItem |
Func<TItem, bool>? |
null |
A predicate that marks certain items (for example, group headers) as sticky. The active sticky item gets pinned to the leading edge of the viewport while its group scrolls. Fully supported with in-memory Items; in provider mode it is applied on a best-effort basis to the currently loaded window. A change in the state the predicate reads, rather than in the predicate itself, gets applied by RefreshDataAsync. |
| Items |
ICollection<TItem>? |
null |
The in-memory collection of items to virtualize. Mutually exclusive with ItemsProvider. |
| ItemKey |
Func<TItem, object>? |
null |
A function that returns a stable and unique identity key for an item. When provided, rendered rows are keyed by identity (instead of by index) so per-item DOM/component state survives insertions, removals and reordering, dynamic measurements follow their item across those mutations, and the item in view stays in place when items get inserted or removed before it. |
| ItemRole |
string? |
listitem |
The ARIA role of each item element. |
| ItemSize |
float |
50 |
The size in pixels of each item along the scroll axis when the Dynamic mode is off. |
| ItemsProvider |
BitVirtualizeItemsProvider<TItem>? |
null |
The item provider function that lazily supplies windows of items on demand. Mutually exclusive with Items. |
| ItemTemplate |
RenderFragment<TItem>? |
null |
Alias for ChildContent. |
| LoadingTemplate |
RenderFragment? |
null |
The custom template to render until the component has performed its first load. |
| OnEndReached |
EventCallback |
|
The callback to be called when the last item comes within ReachedThreshold items of the visible window, useful for appending more data in infinite scrolling scenarios. Fires once per item-count value. |
| OnStartReached |
EventCallback |
|
The callback to be called when the first item comes within ReachedThreshold items of the visible window, useful for prepending older data (for example, loading chat history when scrolling up). Fires again when items get prepended while the start is still within reach. |
| OnVisibleRangeChanged |
EventCallback<(int Start, int End)> |
|
The callback to be called whenever the visible index range changes. |
| OverscanCount |
int |
3 |
The number of extra items to render on each side of the visible window for smoother scrolling. |
| PlaceholderTemplate |
RenderFragment<BitVirtualizePlaceholderContext>? |
null |
The custom template to render an item whose data has not been loaded yet in provider mode. |
| ReachedThreshold |
int |
0 |
The number of items away from an edge the visible window must be before OnEndReached/OnStartReached fire. |
| Reversed |
bool |
false |
Enables the bottom-anchored mode in which the list starts scrolled to the end and automatically keeps the newest items in view when data gets appended while the user is at the bottom. Ideal for chat and log views. |
| Role |
string? |
list |
The ARIA role of the root element. |
| StickyTemplate |
RenderFragment<TItem>? |
null |
The custom template to render the pinned sticky item. Falls back to the item template when not provided. |
| Styles |
BitVirtualizeClassStyles? |
null |
Custom CSS styles for different parts of the BitVirtualize. |
| Name |
Type |
Default value |
Description |
|---|
| RefreshDataAsync |
Func<Task> |
|
Re-requests the data from the ItemsProvider (or re-reads the Items) and refreshes the view. |
| ScrollToIndexAsync |
Func<int, BitVirtualizeScrollAlignment, bool, Task> |
|
Scrolls the viewport so that the item at the provided index becomes visible. A call made before the component is ready (for example, before its data arrives) gets applied once it is. |
| ScrollToOffsetAsync |
Func<double, bool, Task> |
|
Scrolls to an absolute pixel offset along the scroll axis, measured from the start of the first item. |
| ScrollByAsync |
Func<double, bool, Task> |
|
Scrolls the viewport by the provided number of pixels along the scroll axis (negative values scroll back). |
| ScrollToStartAsync |
Func<bool, Task> |
|
Scrolls to the very start (top/left) of the list, including the HeaderTemplate. |
| ScrollToEndAsync |
Func<bool, Task> |
|
Scrolls to the very end (bottom/right) of the list, including the FooterTemplate. Useful for chat and log views. |
| Name |
Type |
Default value |
Description |
|---|
| AriaLabel |
string? |
null |
Gets or sets the accessible label for the component, used by assistive technologies. |
| Class |
string? |
null |
Gets or sets the CSS class name(s) to apply to the rendered element. |
| Dir |
BitDir? |
null |
Gets or sets the text directionality for the component's content. |
| ForceAnimation |
bool |
false |
Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested. |
| HtmlAttributes |
Dictionary<string, object> |
new Dictionary<string, object>() |
Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. |
| Id |
string? |
null |
Gets or sets the unique identifier for the component's root element. |
| IsEnabled |
bool |
true |
Gets or sets a value indicating whether the component is enabled and can respond to user interaction. |
| Style |
string? |
null |
Gets or sets the CSS style string to apply to the rendered element. |
| TabIndex |
string? |
null |
Gets or sets the tab order index for the component when navigating with the keyboard. |
| Visibility |
BitVisibility |
BitVisibility.Visible |
Gets or sets the visibility state (visible, hidden, or collapsed) of the component. |
BitVirtualizePlaceholderContext properties
The context passed to the PlaceholderTemplate while real items are being loaded.
| Name |
Type |
Default value |
Description |
|---|
| Index |
int |
0 |
The zero-based index of the item this placeholder represents. |
| Size |
double |
0 |
The estimated size (px) reserved for the placeholder along the scroll axis. |