syncfusion-maui-listview

$npx mdskill add syncfusion/maui-ui-components-skills/syncfusion-maui-listview

Display and manage data collections with Syncfusion MAUI ListView.

  • Shows lists or grids of data with sorting, filtering, and grouping.
  • Depends on Syncfusion .NET MAUI ListView (SfListView) component.
  • Selects layout, interaction, and data operations based on user needs.
  • Returns configured XAML and C# code for the ListView implementation.

SKILL.md

.github/skills/syncfusion-maui-listviewView on GitHub ↗
---
name: syncfusion-maui-listview
description: Implements Syncfusion .NET MAUI ListView (SfListView). Use when displaying lists or collections of data in MAUI applications, implementing data grids, creating scrollable item lists, or adding sorting/filtering/grouping. Covers item selection, layout customization, swipe actions, pull-to-refresh, load more, and drag-drop items.

metadata:
  author: "Syncfusion Inc"
  version: "34.1.29"
---

# Implementing .NET MAUI ListView

A comprehensive skill for implementing, customizing, and optimizing the Syncfusion .NET MAUI ListView (SfListView) component. The ListView displays collections of data with support for layouts, sorting, filtering, grouping, selection, and rich customization options.

## When to Use This Skill

Use this skill when you need to:

- **Display Collections:** Show lists of data items from any data source (ObservableCollection, List, etc.)
- **Data Operations:** Implement sorting, filtering, or grouping of list items
- **Custom Layouts:** Create linear or grid layouts with single or multiple columns
- **User Interaction:** Enable item selection (single/multiple), tapping, long-press, or double-tap
- **Advanced Features:** Add swipe actions, drag-and-drop reordering, pull-to-refresh, or load more
- **Customization:** Design custom item templates, headers, footers, or group headers
- **Performance:** Optimize list rendering for large datasets with virtualization
- **MVVM Patterns:** Implement ListView with data binding, commands, and ViewModels

**Common Scenarios:**
- Product catalogs, contact lists, inbox/email lists
- News feeds, social media posts, photo galleries
- Settings pages, navigation menus, file browsers
- Task lists, order history, transaction records
- Any scrollable collection of similar items

## Component Overview

**SfListView** is a high-performance, feature-rich list control that:
- Renders data items using built-in or custom templates
- Supports optimized view reusing strategy for smooth scrolling
- Provides linear and grid layouts with orientation support
- Enables data operations (sort, filter, group) without re-binding
- Offers multiple selection modes and gestures
- Includes sticky headers, footers, and group headers
- Supports item swipe actions and drag-and-drop
- Handles large datasets efficiently with virtualization


## Documentation and Navigation Guide

### Getting Started
📄 **Read:** [references/getting-started.md](references/getting-started.md)
- NuGet package setup (Syncfusion.Maui.ListView)
- Registering handlers in MauiProgram.cs
- Creating your first ListView
- Data models and ViewModels
- Basic data binding and item templates

### Layout Options
📄 **Read:** [references/layouts.md](references/layouts.md)
- Linear layout (vertical/horizontal)
- Grid layout with SpanCount
- Changing layouts dynamically
- Responsive column count based on screen size
- Layout best practices

### Data Operations
📄 **Read:** [references/data-operations.md](references/data-operations.md)
- Sorting with SortDescriptor (ascending/descending, custom comparers)
- Filtering with predicates and RefreshFilter
- Grouping with GroupDescriptor and sticky group headers
- Combining multiple operations
- Performance considerations

### Selection
📄 **Read:** [references/selection.md](references/selection.md)
- Selection modes (None, Single, SingleDeselect, Multiple, Extended)
- Selection gestures (Tap, DoubleTap, Hold)
- SelectedItem and SelectedItems properties
- Selection events (SelectionChanging, SelectionChanged)
- Programmatic selection
- Customizing selection appearance

### Item Customization
📄 **Read:** [references/item-customization.md](references/item-customization.md)
- Custom item templates with ItemTemplate
- DataTemplateSelector for dynamic templates
- Item sizing (fixed, auto-fit, dynamic)
- Item appearance (borders, spacing, visual effects)
- Liquid glass effect
- Advanced customization techniques

### Headers and Footers
📄 **Read:** [references/headers-footers.md](references/headers-footers.md)
- Adding HeaderTemplate and FooterTemplate
- Sticky headers and footers (IsStickyHeader, IsStickyFooter)
- Group headers with GroupHeaderTemplate
- Dynamic header/footer content
- Common header/footer patterns

### Interactive Features
📄 **Read:** [references/interactive-features.md](references/interactive-features.md)
- Swipe actions (StartSwipeTemplate, EndSwipeTemplate)
- Swipe events and common patterns (delete, archive)
- Drag and drop (DragStartMode, drag/drop events)
- Reordering items within list
- Cross-list drag and drop

### Load More and Pull to Refresh
📄 **Read:** [references/load-more-pull-refresh.md](references/load-more-pull-refresh.md)
- Load more options (auto/manual)
- LoadMoreCommand and LoadMoreTemplate
- Pull to refresh
- Best practices for large datasets

### Scrolling
📄 **Read:** [references/scrolling.md](references/scrolling.md)
- Scroll methods (ScrollTo, ScrollToRowIndex)
- ScrollBarVisibility property
- Programmatic scrolling
- ListView without virtualization
- Performance optimization for scrolling

### Right-to-Left (RTL) Support
📄 **Read:** [references/rtl.md](references/rtl.md)
- Right-to-Left (RTL) layout support
- FlowDirection property
- Testing RTL layouts

### MVVM Patterns
📄 **Read:** [references/mvvm-patterns.md](references/mvvm-patterns.md)
- MVVM architecture with ListView
- INotifyPropertyChanged and ObservableCollection
- Commands (TapCommand, LongPressCommand)
- Data binding patterns
- Handling user actions in MVVM
- Complete MVVM example

### Events and Performance
📄 **Read:** [references/events-performance.md](references/events-performance.md)
- Lifecycle events (Loaded)
- Interaction events (ItemTapped, ItemDoubleTapped, ItemLongPress)
- ItemAppearing and ItemDisappearing events
- Performance optimization techniques
- Using BeginInit/EndInit for batch updates
- RefreshView method
- Troubleshooting performance issues

More from syncfusion/maui-ui-components-skills

SkillDescription
syncfusion-maui-accordionImplements Syncfusion .NET MAUI Accordion (SfAccordion) - a vertically collapsible panel with stacked headers for expanding/collapsing content. Use when working with accordions, collapsible panels, expandable lists, employee lists with details, or FAQ sections in .NET MAUI applications. Covers AccordionItem configuration, expand modes, and grouped content display.
syncfusion-maui-ai-assistviewImplements Syncfusion .NET MAUI AI AssistView (SfAIAssistView) for AI-powered interactive chat interfaces. Use when working with AI chat interfaces, AI AssistView, SfAIAssistView, conversational UI, or chat with AI responses. Covers integrating AI services, creating chat UIs, implementing conversation flows, managing AI requests/responses, and displaying AI suggestions.
syncfusion-maui-autocompleteImplements and configure Syncfusion .NET MAUI Autocomplete (SfAutocomplete) control for intelligent text input with suggestions. Use when implementing autocomplete, autosuggest, type-ahead search, smart search, or filtered dropdowns in .NET MAUI applications. Covers data binding, filtering modes, custom search logic, AI-powered search, multi-selection with tokens, and UI customization.
syncfusion-maui-avatar-viewImplements Syncfusion .NET MAUI Avatar View (SfAvatarView) for displaying user profile pictures, initials, or group avatars. Use when working with avatar views, profile pictures, user images, initials display, profile icons, or contact images. Ideal for implementing user profile displays, contact lists, chat interfaces, or social feeds.
syncfusion-maui-backdropImplements Syncfusion .NET MAUI Backdrop Page (SfBackdropPage) with back layer and front layer surfaces. Use when working with backdrop pages, SfBackdropPage, back layer, front layer, or reveal/conceal animations. Covers backdrop navigation patterns, header icons, corner shapes, reveal height, layer state events, and liquid glass effect.
syncfusion-maui-badge-viewImplements Syncfusion .NET MAUI Badge View (SfBadgeView) control. Use when adding badge notifications, status indicators, unread counts, or notification overlays to MAUI applications. Covers SfBadgeView setup, badge text customization, position adjustments, animations, predefined symbols, and accessibility features.
syncfusion-maui-barcode-generatorImplements Syncfusion .NET MAUI Barcode Generator (SfBarcodeGenerator) for generating machine-readable barcodes. Use when working with barcodes, barcode generation, QR codes, data matrix, EAN codes, UPC codes, Code128, or Code39. This skill covers both one-dimensional (linear) and two-dimensional (matrix) barcode symbologies with extensive customization options.
syncfusion-maui-busy-indicatorImplements Syncfusion .NET MAUI Busy Indicator (SfBusyIndicator) for showing loading states, data processing, and app activity indicators. Use when displaying loading indicators, busy animations, activity spinners, or processing feedback in .NET MAUI apps. Covers busy indicator setup, animations, and visual feedback during long-running operations.
syncfusion-maui-buttonImplements and customize Syncfusion .NET MAUI Button (SfButton) control. Use when working with MAUI buttons, SfButton implementation, button customization, or visual states. Covers button icons, background images, RTL support, Liquid Glass effects, custom button views, button styling, events, and checkable buttons.
syncfusion-maui-calendarImplements and customize Syncfusion .NET MAUI Calendar (SfCalendar) control. Use when implementing calendar functionality, date selection (single, multiple, range), or calendar views (month, year, decade, century). Covers date restrictions (min/max dates, EnablePastDates, SelectableDayPredicate), calendar customization, events (ViewChanged, SelectionChanged, Tapped), and header/footer customization.