dotnet / dotnet/maui

Deprecation of `ListView` in .NET 10 MAUI

Open
#28,699 21 comments 0 reactions 0 assignees View on GitHub
area-controls-listview s/triaged
Dominant language
C#
Stars
23.3k
Forks
2k
Avg merge
1d 10h
Merged PRs (30d)
297

Description

# Deprecation of `ListView` in .NET 10 MAUI

## Summary

Starting with .NET 10 MAUI, `ListView` and all related cell types (`TextCell`, `ImageCell`, `ViewCell`, etc.) will be marked as **obsolete**. Significant improvements are being made to the `CollectionView` experience in .NET 10 and .NET 9 to address developer pain points and ensure it becomes a fully capable and superior alternative. Currently, there are no plans to support existing `Cell` types within `CollectionView`.

---

## Motivation

Our goal is to simplify the developer experience by maintaining a single, optimized control. Focusing our engineering efforts exclusively on `CollectionView` allows us to deliver clearer guidance, better documentation, and enhanced performance.

---

## Recommended Replacement: `CollectionView`

`CollectionView` supports all major features required for effectively displaying data, including:

- **Multiple Layouts:** Vertical, horizontal, and grid layouts.
- **Data Binding Support:** Fully supports binding with `ItemsSource`.
- **Header and Footer Templates:** Easily add headers and footers.
- **Empty View Handling:** Define views for empty state scenarios.
- **Grouping Support:** Group data with advanced header/footer options.

Please let us know about any gaps or reasons you might be hesitant to convert from `ListView`.

---

## Obsoletion Timeline

- **.NET 10 Preview 3:**
- [`ListView` and all related cell types will be marked as **[Obsolete]**.](https://github.com/dotnet/maui/pull/28500)
- `ListView` will continue to function in .NET 10, but bug fixes will generally not be prioritized or actively worked on.

- **.NET 11:**
- We will assess the complete removal of `ListView` or consider moving it to a compatibility NuGet package for legacy scenarios.

---

## Call to Action

- For iOS specifically, developers can now use the new [`CollectionViewHandler2` and `CarouselViewHandler2`](https://learn.microsoft.com/en-us/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#collectionview-and-carouselview). Please try these handlers and provide feedback.
- We remain actively committed to prioritizing CollectionView fixes for .NET 9 without slowing down. If you encounter any **blocking issues** preventing you from migrating to `CollectionView`, please [log an issue on the MAUI GitHub repository](https://github.com/dotnet/maui/issues).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.