From ff2f8671cd804b3ee376e98de68e0e94b68c3551 Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Tue, 30 Jun 2026 10:42:54 +0530 Subject: [PATCH 1/7] CollectionView2Handler Windows --- .../controls/collectionview/index.md | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/docs/user-interface/controls/collectionview/index.md b/docs/user-interface/controls/collectionview/index.md index dc93704c1b..d8af991303 100644 --- a/docs/user-interface/controls/collectionview/index.md +++ b/docs/user-interface/controls/collectionview/index.md @@ -16,17 +16,26 @@ The following screenshot shows a t should be used for presenting lists of data that require scrolling or selection. A bindable layout can be used when the data to be displayed doesn't require scrolling or selection. For more information, see [BindableLayout](~/user-interface/layouts/bindablelayout.md). -::: moniker range=">=net-maui-10.0" +::: moniker range="net-maui-10.0 net-maui-11.0" > [!NOTE] -> On iOS and Mac Catalyst, the optimized handlers that were optional in .NET 9 are the default handlers for in .NET 10, providing improved performance and stability. +> `CollectionView` optimized handlers became default at different times per platform: +> +> | Platform | Default starting in | Previously optional in | +> | --- | --- | --- | +> | iOS / Mac Catalyst | .NET 10 | .NET 9 | +> | Windows | .NET 11 | .NET 10 | +> +> These optimized handlers provide improved stability and performance. -## Revert to .NET 9 behavior +## Revert to previous behavior -We recommend using the new handler for , but if you want to opt-out of this behavior and revert back to the .NET 9 handler, you can use the code below in your `MauiProgram.cs`. +You can revert in either of these ways (depending on your scenario): + +### Option 1: Configure handlers in `MauiProgram.cs` ```csharp -#if IOS || MACCATALYST +#if IOS || MACCATALYST || WINDOWS builder.ConfigureMauiHandlers(handlers => { handlers.AddHandler(); @@ -34,6 +43,16 @@ builder.ConfigureMauiHandlers(handlers => #endif ``` +### Option 2 (Windows only): Disable optimized CollectionView handler in project file + +`UseCollectionViewHandler2` is only supported for Windows targets. + +```xml + + false + +``` + ::: moniker-end ## CollectionView and ListView differences From bfc9ad69f7d1cd84c1d0fdcd5658b7c80cd6af89 Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Tue, 30 Jun 2026 10:51:49 +0530 Subject: [PATCH 2/7] Update index.md --- docs/user-interface/controls/collectionview/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/user-interface/controls/collectionview/index.md b/docs/user-interface/controls/collectionview/index.md index d8af991303..ba200ee90f 100644 --- a/docs/user-interface/controls/collectionview/index.md +++ b/docs/user-interface/controls/collectionview/index.md @@ -21,10 +21,10 @@ The following screenshot shows a t > [!NOTE] > `CollectionView` optimized handlers became default at different times per platform: > -> | Platform | Default starting in | Previously optional in | +> | Platform | Availability before default | Default starting in | > | --- | --- | --- | -> | iOS / Mac Catalyst | .NET 10 | .NET 9 | -> | Windows | .NET 11 | .NET 10 | +> | iOS / Mac Catalyst | .NET 9 (optional) | .NET 10 | +> | Windows | Not available before .NET 11 | .NET 11 | > > These optimized handlers provide improved stability and performance. @@ -45,11 +45,11 @@ builder.ConfigureMauiHandlers(handlers => ### Option 2 (Windows only): Disable optimized CollectionView handler in project file -`UseCollectionViewHandler2` is only supported for Windows targets. +`UseWindowsCollectionView2Handler` is only supported for Windows targets. ```xml - false + false ``` From 7665eba0dc6b34fd880510bdf66c1b8677f245a7 Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Tue, 30 Jun 2026 12:42:34 +0530 Subject: [PATCH 3/7] Update index.md --- docs/user-interface/controls/collectionview/index.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/user-interface/controls/collectionview/index.md b/docs/user-interface/controls/collectionview/index.md index ba200ee90f..f487cbfd4d 100644 --- a/docs/user-interface/controls/collectionview/index.md +++ b/docs/user-interface/controls/collectionview/index.md @@ -30,9 +30,9 @@ The following screenshot shows a t ## Revert to previous behavior -You can revert in either of these ways (depending on your scenario): +We recommend using the new handler for , but if you want to opt out and revert to the previous handler behavior, you can use the code below in your `MauiProgram.cs`. -### Option 1: Configure handlers in `MauiProgram.cs` +Configure handlers in `MauiProgram.cs`: ```csharp #if IOS || MACCATALYST || WINDOWS @@ -43,9 +43,7 @@ builder.ConfigureMauiHandlers(handlers => #endif ``` -### Option 2 (Windows only): Disable optimized CollectionView handler in project file - -`UseWindowsCollectionView2Handler` is only supported for Windows targets. +On Windows, you can also use the `UseWindowsCollectionView2Handler` build property in your project file. ```xml From 97cbed17df1b1b77fba21d93b1c2ee283960d34f Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Wed, 1 Jul 2026 16:46:52 +0530 Subject: [PATCH 4/7] Update dotnet-11.md --- docs/whats-new/dotnet-11.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/whats-new/dotnet-11.md b/docs/whats-new/dotnet-11.md index 82a49540a4..64d99b06e0 100644 --- a/docs/whats-new/dotnet-11.md +++ b/docs/whats-new/dotnet-11.md @@ -162,6 +162,18 @@ For more information, see GitHub PRs [#29101](https://github.com/dotnet/maui/pul In .NET 11 Preview 5, the control gains a Windows implementation backed by Azure Maps. To use it, call `UseMapServiceToken(...)` in `MauiProgram.cs` with an Azure Maps subscription key. The Windows implementation supports `MoveToRegion`, map types, traffic, scrolling, zooming, and standard pins; some platform-only features such as user location, custom pin info windows, and map elements/shapes aren't supported on Windows. For more information, see [GitHub PR #34138](https://github.com/dotnet/maui/pull/34138). +### CollectionView v2 on Windows + +Starting in .NET 11 Preview 6, on Windows now uses optimized default handlers, providing improved performance and stability. For more information, see [GitHub PR #34600](https://github.com/dotnet/maui/pull/34600). + +If you need to revert to the previous handler, you can disable the CollectionView v2 handler by setting the `UseWindowsCollectionView2Handler` build property to `false` in your project file: + +```xml + + false + +``` + ### BoxView Fill Starting in .NET 11 Preview 5, exposes a `Fill` property of type . This aligns with the other shape primitives and means gradients and other brushes can paint a `BoxView` without a custom handler. `BackgroundColor` still works as before. For more information, see [GitHub PR #31789](https://github.com/dotnet/maui/pull/31789). From cce57360008bfd813e2226bc160ef17b7fdf2b18 Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:12:33 +0530 Subject: [PATCH 5/7] Update dotnet-11.md --- docs/whats-new/dotnet-11.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/whats-new/dotnet-11.md b/docs/whats-new/dotnet-11.md index 64d99b06e0..a070ab84ae 100644 --- a/docs/whats-new/dotnet-11.md +++ b/docs/whats-new/dotnet-11.md @@ -48,6 +48,18 @@ In .NET 11 Preview 4, the Android handlers for several core controls use Materia In .NET 11 Preview 5, the underlying Material 3 helper types (`MauiMaterialEditText`, `MauiMaterialDatePicker`, `MauiMaterialPicker`, `MauiMaterialTimePicker`, `MauiMaterialTextView`, `MauiMaterialSearchBarTextInputLayout`, `MaterialActivityIndicator`, and `MauiMaterialContextThemeWrapper`) are public so you can subclass them from your own handler customizations. For more information, see [GitHub PR #35323](https://github.com/dotnet/maui/pull/35323) and [Material 3](~/user-interface/material-design.md). +### CollectionView v2 on Windows + +Starting in .NET 11 Preview 6, on Windows now uses optimized default handlers, providing improved performance and stability. For more information, see [GitHub PR #34600](https://github.com/dotnet/maui/pull/34600). + +If you need to revert to the previous handler, you can disable the CollectionView v2 handler by setting the `UseWindowsCollectionView2Handler` build property to `false` in your project file: + +```xml + + false + +``` + ### BoxView Fill property :::moniker range=">=net-maui-11.0" @@ -162,18 +174,6 @@ For more information, see GitHub PRs [#29101](https://github.com/dotnet/maui/pul In .NET 11 Preview 5, the control gains a Windows implementation backed by Azure Maps. To use it, call `UseMapServiceToken(...)` in `MauiProgram.cs` with an Azure Maps subscription key. The Windows implementation supports `MoveToRegion`, map types, traffic, scrolling, zooming, and standard pins; some platform-only features such as user location, custom pin info windows, and map elements/shapes aren't supported on Windows. For more information, see [GitHub PR #34138](https://github.com/dotnet/maui/pull/34138). -### CollectionView v2 on Windows - -Starting in .NET 11 Preview 6, on Windows now uses optimized default handlers, providing improved performance and stability. For more information, see [GitHub PR #34600](https://github.com/dotnet/maui/pull/34600). - -If you need to revert to the previous handler, you can disable the CollectionView v2 handler by setting the `UseWindowsCollectionView2Handler` build property to `false` in your project file: - -```xml - - false - -``` - ### BoxView Fill Starting in .NET 11 Preview 5, exposes a `Fill` property of type . This aligns with the other shape primitives and means gradients and other brushes can paint a `BoxView` without a custom handler. `BackgroundColor` still works as before. For more information, see [GitHub PR #31789](https://github.com/dotnet/maui/pull/31789). @@ -341,8 +341,8 @@ We have enhanced the .NET CLI with [Spectre.Console](https://spectreconsole.net/ So, for multi-targeted projects like .NET MAUI, it will: -* Prompt for a `$(TargetFramework)` -* Prompt for a device, emulator, simulator if there are more than one. +- Prompt for a `$(TargetFramework)` +- Prompt for a device, emulator, simulator if there are more than one. Console output of your application should appear directly in the terminal, and Ctrl+C will terminate the application. From dbb91efb81fbd9952c44c388f6dbe0f626d710f5 Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:18:42 +0530 Subject: [PATCH 6/7] Update dotnet-11.md --- docs/whats-new/dotnet-11.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/whats-new/dotnet-11.md b/docs/whats-new/dotnet-11.md index a070ab84ae..4119c5f5f3 100644 --- a/docs/whats-new/dotnet-11.md +++ b/docs/whats-new/dotnet-11.md @@ -341,8 +341,8 @@ We have enhanced the .NET CLI with [Spectre.Console](https://spectreconsole.net/ So, for multi-targeted projects like .NET MAUI, it will: -- Prompt for a `$(TargetFramework)` -- Prompt for a device, emulator, simulator if there are more than one. +* Prompt for a `$(TargetFramework)` +* Prompt for a device, emulator, simulator if there are more than one. Console output of your application should appear directly in the terminal, and Ctrl+C will terminate the application. From 03f7831ea959f16846f6934907ce7ed8b47c80fa Mon Sep 17 00:00:00 2001 From: SuthiYuvaraj <92777079+SuthiYuvaraj@users.noreply.github.com> Date: Wed, 1 Jul 2026 17:57:02 +0530 Subject: [PATCH 7/7] Update index.md --- docs/user-interface/controls/collectionview/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-interface/controls/collectionview/index.md b/docs/user-interface/controls/collectionview/index.md index f487cbfd4d..68b618d7f9 100644 --- a/docs/user-interface/controls/collectionview/index.md +++ b/docs/user-interface/controls/collectionview/index.md @@ -16,7 +16,7 @@ The following screenshot shows a t should be used for presenting lists of data that require scrolling or selection. A bindable layout can be used when the data to be displayed doesn't require scrolling or selection. For more information, see [BindableLayout](~/user-interface/layouts/bindablelayout.md). -::: moniker range="net-maui-10.0 net-maui-11.0" +::: moniker range=">=net-maui-10.0" > [!NOTE] > `CollectionView` optimized handlers became default at different times per platform: @@ -43,11 +43,11 @@ builder.ConfigureMauiHandlers(handlers => #endif ``` -On Windows, you can also use the `UseWindowsCollectionView2Handler` build property in your project file. +On Windows, you can also use the `UseWindowsCollectionView2Handler` build property in your project file: ```xml - false + false ```