Implementing Syncfusion Blazor ListView Component
The Syncfusion Blazor ListView component is a feature-rich control for displaying and interacting with lists of data. It supports data binding, custom templates, grouping, filtering, virtualization, and advanced selection modes.
When to Use This Skill
- Setting up ListView - Installation, namespaces, service registration, theme setup
- Binding data - Local data arrays, remote DataManager sources, Entity Framework
- Creating templates - Custom item templates, headers, footers, group headers, device-specific rendering
- Selection & interaction - Checkbox selection, retrieving selected items, click handlers
- Filtering & searching - Real-time search, text filtering, custom filter logic
- Organizing data - Grouping by category, group headers, hierarchical grouping
- Performance - Virtual scrolling for large datasets, container scroll vs window scroll
- Advanced layouts - Grid layouts, dual-list patterns, chat UI, mobile-responsive designs
- Styling & customization - CSS classes, themes, HTML attributes, responsive design
- Event handling - Item selection, navigation, hyperlink integration, list events
Quick Start Example
@using Syncfusion.Blazor.Lists
<SfListView DataSource="@ListData">
<ListViewFieldSettings TValue="DataModel" Id="Id" Text="Text"></ListViewFieldSettings>
</SfListView>
@code {
List<DataModel> ListData = new List<DataModel>();
protected override void OnInitialized()
{
ListData.Add(new DataModel { Text = "Item 1", Id = "1" });
ListData.Add(new DataModel { Text = "Item 2", Id = "2" });
ListData.Add(new DataModel { Text = "Item 3", Id = "3" });
}
public class DataModel
{
public string Id { get; set; }
public string Text { get; set; }
}
}
Common Properties & Events
Essential Properties
- DataSource - Array of items or DataManager for binding
- HeaderTitle - Optional header text
- ShowHeader - Display/hide header (boolean)
- EnableCheckbox - Enable checkbox selection (boolean)
- EnableVirtualization - Virtual scrolling for large lists (boolean)
- Height - Container height (required for virtual scrolling)
- ShowCheckBox - Display checkboxes for selection
- SortOrder - Sort items (Ascending/Descending)
Template Properties
- HeaderTemplate - Customize header appearance
- Template - Custom item rendering
- GroupTemplate - Group header customization
- FooterTemplate - Footer customization
Selection & Data
- ListViewFieldSettings - Map data properties:
Id - Item identifier
Text - Display text
GroupBy - Grouping field
Child - Nested items
IconCss - Icon class
Tooltip - Hover tooltip
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation in WebAssembly, Web App, and Server App projects
- Package installation (NuGet)
- Namespace imports and service registration
- Theme stylesheet and script references
- First ListView component setup
- Minimal working example
Data Binding and Sources
📄 Read: references/data-binding-and-source.md
- Local data arrays and JSON binding
- Remote data with DataManager
- OData, OData V4, Web API integration
- Entity Framework binding
- Field mapping with ListViewFieldSettings
- Dynamic data updates and refresh
Templating and Rendering
📄 Read: references/templating-and-rendering.md
- Item template customization
- Header and footer templates
- Group header templates
- Device-specific templates (responsive rendering)
- Template element classes (e-list-template, e-list-wrapper, etc.)
- Avatar and badge templates
- Multi-line items
Item Selection and Actions
📄 Read: references/item-selection-and-actions.md
- GetCheckedItemsAsync method
- Selection with checkboxes
- Single and multiple selection modes
- Retrieving selected item data and indices
- Custom template selection handling
- Click event handlers
Filtering and Searching
📄 Read: references/filtering-and-searching.md
- Real-time search implementation
- Text input filtering
- Filter logic and predicates
- String matching strategies
- Case-insensitive filtering
- Custom filter conditions
Grouping and Organization
📄 Read: references/grouping-and-organization.md
- GroupBy field configuration
- Group header styling
- Collapsible groups
- Category-based organization
- Hierarchical grouping patterns
Virtualization and Performance
📄 Read: references/virtualization-and-performance.md
- EnableVirtualization property
- Window scroll vs container scroll
- Height configuration
- Large dataset handling (1000+ items)
- Performance optimization techniques
- Virtual scrolling limitations and constraints
Advanced Layouts
📄 Read: references/advanced-layouts.md
- Grid layout customization
- Dual-list/multi-select patterns
- Mobile-responsive contact layouts
- Chat window UI implementation
- Layout-specific CSS classes
- Responsive design patterns
Styling and Customization
📄 Read: references/styling-and-customization.md
- CSS class customization (e-listview, e-list-item, e-list-header)
- Theme integration and colors
- Hover state styling
- Selected item styling
- Group header styling
- HTML attribute support
- CSS structure and selectors
Events and Navigation
📄 Read: references/events-and-navigation.md
- ListViewItem event handling
- Click and selection events
- Navigation patterns
- Hyperlink integration and routing
- Event method signatures
- Event context and data
Advanced Patterns
📄 Read: references/advanced-patterns.md
- Nested list implementation
- Add/remove items dynamically
- CRUD operations on ListData
- Complex data scenarios
- Multiple nested levels
- Best practices for hierarchical data
API Reference
📄 Read: references/api-reference.md
- Complete properties documentation with types and defaults
- All component methods with parameters and return types
- Event signatures and event arguments
- Field settings and field mapping configuration
- Template definitions and usage
- Supporting enums (SortOrder, CheckBoxPosition, ListViewEffect)
- Complete working example with all features
Key Props Reference
| Property |
Type |
Purpose |
DataSource |
Array/DataManager |
Items to display |
HeaderTitle |
string |
Header text |
ShowHeader |
bool |
Show/hide header |
ShowCheckBox |
bool |
Enable checkboxes |
EnableVirtualization |
bool |
Virtual scrolling |
Height |
string |
Component height (px) |
SortOrder |
SortOrder |
Ascending/Descending |
CssClass |
string |
Custom CSS class |
Template |
RenderFragment |
Item template |
HeaderTemplate |
RenderFragment |
Header template |
Common Use Cases
- Simple list display - Use basic DataSource binding with ListViewFieldSettings
- Selectable lists - Add ShowCheckBox="true" with GetCheckedItemsAsync()
- Searchable list - Bind TextBox input to filter DataSource in OnInput events
- Grouped lists - Map GroupBy field in ListViewFieldSettings
- Large datasets - Enable virtualization with EnableVirtualization="true" and Height
- Custom UI - Use Template property with multi-line layouts, avatars, badges
- Nested lists - Map Child field and use recursive templates
- Responsive design - Device-specific templates or dynamic templates based on viewport
This skill provides architecture and patterns for all ListView scenarios. Reference the specific guide files for detailed implementations and code examples.
1---
2name: syncfusion-blazor-listview
3description: Guide for implementing Syncfusion Blazor ListView component. Use this when building list-based interfaces with data binding, filtering, grouping, virtual scrolling, selection modes, and custom templates. Covers installation, templating, event handling, and advanced patterns.
4metadata:
5 author: "Syncfusion Inc"
6 version: "34.1.29"
7 category: "Navigation Components"
8---
9
10# Implementing Syncfusion Blazor ListView Component
11
12The Syncfusion Blazor ListView component is a feature-rich control for displaying and interacting with lists of data. It supports data binding, custom templates, grouping, filtering, virtualization, and advanced selection modes.
13
14## When to Use This Skill
15
16- **Setting up ListView** - Installation, namespaces, service registration, theme setup
17- **Binding data** - Local data arrays, remote DataManager sources, Entity Framework
18- **Creating templates** - Custom item templates, headers, footers, group headers, device-specific rendering
19- **Selection & interaction** - Checkbox selection, retrieving selected items, click handlers
20- **Filtering & searching** - Real-time search, text filtering, custom filter logic
21- **Organizing data** - Grouping by category, group headers, hierarchical grouping
22- **Performance** - Virtual scrolling for large datasets, container scroll vs window scroll
23- **Advanced layouts** - Grid layouts, dual-list patterns, chat UI, mobile-responsive designs
24- **Styling & customization** - CSS classes, themes, HTML attributes, responsive design
25- **Event handling** - Item selection, navigation, hyperlink integration, list events
26
27## Quick Start Example
28
29```cshtml
30@using Syncfusion.Blazor.Lists
31
32<SfListView DataSource="@ListData">
33 <ListViewFieldSettings TValue="DataModel" Id="Id" Text="Text"></ListViewFieldSettings>
34</SfListView>
35
36@code {
37 List<DataModel> ListData = new List<DataModel>();
38
39 protected override void OnInitialized()
40 {
41 ListData.Add(new DataModel { Text = "Item 1", Id = "1" });
42 ListData.Add(new DataModel { Text = "Item 2", Id = "2" });
43 ListData.Add(new DataModel { Text = "Item 3", Id = "3" });
44 }
45
46 public class DataModel
47 {
48 public string Id { get; set; }
49 public string Text { get; set; }
50 }
51}
52```
53
54## Common Properties & Events
55
56### Essential Properties
57
58- **DataSource** - Array of items or DataManager for binding
59- **HeaderTitle** - Optional header text
60- **ShowHeader** - Display/hide header (boolean)
61- **EnableCheckbox** - Enable checkbox selection (boolean)
62- **EnableVirtualization** - Virtual scrolling for large lists (boolean)
63- **Height** - Container height (required for virtual scrolling)
64- **ShowCheckBox** - Display checkboxes for selection
65- **SortOrder** - Sort items (Ascending/Descending)
66
67### Template Properties
68
69- **HeaderTemplate** - Customize header appearance
70- **Template** - Custom item rendering
71- **GroupTemplate** - Group header customization
72- **FooterTemplate** - Footer customization
73
74### Selection & Data
75
76- **ListViewFieldSettings** - Map data properties:
77 - `Id` - Item identifier
78 - `Text` - Display text
79 - `GroupBy` - Grouping field
80 - `Child` - Nested items
81 - `IconCss` - Icon class
82 - `Tooltip` - Hover tooltip
83
84## Documentation and Navigation Guide
85
86### Getting Started
87📄 **Read:** [references/getting-started.md](references/getting-started.md)
88- Installation in WebAssembly, Web App, and Server App projects
89- Package installation (NuGet)
90- Namespace imports and service registration
91- Theme stylesheet and script references
92- First ListView component setup
93- Minimal working example
94
95### Data Binding and Sources
96📄 **Read:** [references/data-binding-and-source.md](references/data-binding-and-source.md)
97- Local data arrays and JSON binding
98- Remote data with DataManager
99- OData, OData V4, Web API integration
100- Entity Framework binding
101- Field mapping with ListViewFieldSettings
102- Dynamic data updates and refresh
103
104### Templating and Rendering
105📄 **Read:** [references/templating-and-rendering.md](references/templating-and-rendering.md)
106- Item template customization
107- Header and footer templates
108- Group header templates
109- Device-specific templates (responsive rendering)
110- Template element classes (e-list-template, e-list-wrapper, etc.)
111- Avatar and badge templates
112- Multi-line items
113
114### Item Selection and Actions
115📄 **Read:** [references/item-selection-and-actions.md](references/item-selection-and-actions.md)
116- GetCheckedItemsAsync method
117- Selection with checkboxes
118- Single and multiple selection modes
119- Retrieving selected item data and indices
120- Custom template selection handling
121- Click event handlers
122
123### Filtering and Searching
124📄 **Read:** [references/filtering-and-searching.md](references/filtering-and-searching.md)
125- Real-time search implementation
126- Text input filtering
127- Filter logic and predicates
128- String matching strategies
129- Case-insensitive filtering
130- Custom filter conditions
131
132### Grouping and Organization
133📄 **Read:** [references/grouping-and-organization.md](references/grouping-and-organization.md)
134- GroupBy field configuration
135- Group header styling
136- Collapsible groups
137- Category-based organization
138- Hierarchical grouping patterns
139
140### Virtualization and Performance
141📄 **Read:** [references/virtualization-and-performance.md](references/virtualization-and-performance.md)
142- EnableVirtualization property
143- Window scroll vs container scroll
144- Height configuration
145- Large dataset handling (1000+ items)
146- Performance optimization techniques
147- Virtual scrolling limitations and constraints
148
149### Advanced Layouts
150📄 **Read:** [references/advanced-layouts.md](references/advanced-layouts.md)
151- Grid layout customization
152- Dual-list/multi-select patterns
153- Mobile-responsive contact layouts
154- Chat window UI implementation
155- Layout-specific CSS classes
156- Responsive design patterns
157
158### Styling and Customization
159📄 **Read:** [references/styling-and-customization.md](references/styling-and-customization.md)
160- CSS class customization (e-listview, e-list-item, e-list-header)
161- Theme integration and colors
162- Hover state styling
163- Selected item styling
164- Group header styling
165- HTML attribute support
166- CSS structure and selectors
167
168### Events and Navigation
169📄 **Read:** [references/events-and-navigation.md](references/events-and-navigation.md)
170- ListViewItem event handling
171- Click and selection events
172- Navigation patterns
173- Hyperlink integration and routing
174- Event method signatures
175- Event context and data
176
177### Advanced Patterns
178📄 **Read:** [references/advanced-patterns.md](references/advanced-patterns.md)
179- Nested list implementation
180- Add/remove items dynamically
181- CRUD operations on ListData
182- Complex data scenarios
183- Multiple nested levels
184- Best practices for hierarchical data
185
186### API Reference
187📄 **Read:** [references/api-reference.md](references/api-reference.md)
188- Complete properties documentation with types and defaults
189- All component methods with parameters and return types
190- Event signatures and event arguments
191- Field settings and field mapping configuration
192- Template definitions and usage
193- Supporting enums (SortOrder, CheckBoxPosition, ListViewEffect)
194- Complete working example with all features
195
196## Key Props Reference
197
198| Property | Type | Purpose |
199|----------|------|---------|
200| `DataSource` | Array/DataManager | Items to display |
201| `HeaderTitle` | string | Header text |
202| `ShowHeader` | bool | Show/hide header |
203| `ShowCheckBox` | bool | Enable checkboxes |
204| `EnableVirtualization` | bool | Virtual scrolling |
205| `Height` | string | Component height (px) |
206| `SortOrder` | SortOrder | Ascending/Descending |
207| `CssClass` | string | Custom CSS class |
208| `Template` | RenderFragment | Item template |
209| `HeaderTemplate` | RenderFragment | Header template |
210
211## Common Use Cases
212
2131. **Simple list display** - Use basic DataSource binding with ListViewFieldSettings
2142. **Selectable lists** - Add ShowCheckBox="true" with GetCheckedItemsAsync()
2153. **Searchable list** - Bind TextBox input to filter DataSource in OnInput events
2164. **Grouped lists** - Map GroupBy field in ListViewFieldSettings
2175. **Large datasets** - Enable virtualization with EnableVirtualization="true" and Height
2186. **Custom UI** - Use Template property with multi-line layouts, avatars, badges
2197. **Nested lists** - Map Child field and use recursive templates
2208. **Responsive design** - Device-specific templates or dynamic templates based on viewport
221
222---
223
224*This skill provides architecture and patterns for all ListView scenarios. Reference the specific guide files for detailed implementations and code examples.*