Skip to content

Comments

[XSG] Improve diagnostic reporting during binding compilation#32905

Merged
PureWeen merged 13 commits intoinflight/currentfrom
copilot/improve-diagnostic-reporting
Jan 14, 2026
Merged

[XSG] Improve diagnostic reporting during binding compilation#32905
PureWeen merged 13 commits intoinflight/currentfrom
copilot/improve-diagnostic-reporting

Conversation

Copy link
Contributor

Copilot AI commented Nov 28, 2025

  • Analyze the issue - understand TODOs in binding compilation logic
  • Identify files to modify: CompiledBindingMarkup.cs, KnownMarkups.cs, Descriptors.cs, MauiGResources.resx, etc.
  • Build and test baseline (100 tests passing)
  • Add new diagnostic descriptors for binding-related errors (matching XamlC error codes)
    • MAUIG2041: BindingIndexerNotClosed (matching XC0041)
    • MAUIG2042: BindingIndexerEmpty (matching XC0042)
    • MAUIG2043: BindingIndexerTypeUnsupported (matching XC0043)
    • MAUIG2045: BindingPropertyNotFound (matching XC0045)
    • MAUIG2024: BindingWithXDataTypeFromOuterScope warning (matching XC0024)
    • MAUIG2064: NamescopeDuplicate (matching XC0064)
  • Replace return false; // TODO report diagnostic with actual diagnostic reporting
  • Replace throw new Exception with diagnostic reporting
  • Update resource strings to match XamlC messages
  • Add unit tests for the new diagnostics (6 tests)
  • Update AnalyzerReleases.Unshipped.md
  • Build and test (147 tests passing)
  • Run code review and address feedback
  • Run CodeQL checker (no security issues found)
  • Revert unrelated formatting changes
  • Fix alignment in Descriptors.cs
  • Change diagnostic prefix from MAUIX to MAUIG per reviewer feedback
  • Remove unreachable code in CompiledBindingMarkup.cs
  • Add missing test scenarios for MAUIG2024 and MAUIG2043 diagnostics
  • Support NoWarn metadata for source generator diagnostics
  • Add MAUIG2045 to NoWarn for test XAML files with intentional binding errors
  • Address latest code review feedback:
    • Refactored repeated indexer lookup pattern into reusable local function
    • Removed localized message checks from diagnostic tests
    • Fixed IndexerBindings test assertions to properly validate lambda context using regex patterns that match actual generated code structure
Original prompt

This section details on the original issue you should resolve

<issue_title>[XSG] Improve diagnostic reporting during binding compilation</issue_title>
<issue_description>We left several todos in the binding compilation logic in the XAML source generator. We should try to match the warnings and errors produced by XamlC, just with an adjusted error code.</issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] Improve diagnostic reporting during binding compilation [XSG] Improve diagnostic reporting during binding compilation Nov 28, 2025
Copilot AI requested a review from simonrozsival November 28, 2025 13:14
Copy link
Member

@simonrozsival simonrozsival left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot make these changes

@simonrozsival
Copy link
Member

/azp run

@simonrozsival simonrozsival marked this pull request as ready for review November 28, 2025 16:22
Copilot AI review requested due to automatic review settings November 28, 2025 16:22
@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves diagnostic reporting in the XAML source generator by replacing TODO comments and exception throws with proper diagnostic reporting that matches XamlC error codes. The changes enable developers to receive clear, actionable error and warning messages during XAML compilation.

Key Changes:

  • Adds 6 new diagnostics (MAUIX2024, MAUIX2041-MAUIX2043, MAUIX2045, MAUIX2064) that correspond to XamlC error codes
  • Replaces return false; // TODO report diagnostic statements with proper diagnostic calls in binding compilation
  • Replaces throw new Exception("dup x:Name") with diagnostic reporting for duplicate name detection
  • Includes 4 unit tests validating the new diagnostic scenarios (though 2 diagnostics lack test coverage)

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Controls/src/SourceGen/CompiledBindingMarkup.cs Replaces TODO comments with diagnostic reporting for binding compilation errors (indexer issues, property not found, unsupported types)
src/Controls/src/SourceGen/Descriptors.cs Adds 6 new DiagnosticDescriptor definitions with appropriate IDs, severities, and localized messages
src/Controls/src/SourceGen/MauiGResources.resx Adds localized resource strings for the new diagnostics with clear, user-friendly messages
src/Controls/src/SourceGen/xlf/MauiGResources.Designer.cs Auto-generated designer file adding strongly-typed properties for accessing the new resource strings
src/Controls/src/SourceGen/KnownMarkups.cs Replaces x:DataType outer scope TODO with proper warning diagnostic and includes minor whitespace formatting improvements
src/Controls/src/SourceGen/Visitors/SetNamescopesAndRegisterNames.cs Replaces exception throw for duplicate x:Name with diagnostic reporting
src/Controls/src/SourceGen/AnalyzerReleases.Unshipped.md Documents the 6 new diagnostics being added
src/Controls/tests/SourceGen.UnitTests/BindingDiagnosticsTests.cs Adds 4 new unit tests validating diagnostic reporting for property not found, indexer errors, and duplicate names
Files not reviewed (1)
  • src/Controls/src/SourceGen/xlf/MauiGResources.Designer.cs: Language not supported

@simonrozsival
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@simonrozsival
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

Copilot AI and others added 13 commits January 14, 2026 16:06
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Downgrade MAUIG2041 (BindingIndexerNotClosed), MAUIG2042 (BindingIndexerEmpty),
MAUIG2043 (BindingIndexerTypeUnsupported), and MAUIG2045 (BindingPropertyNotFound)
from Error to Warning severity.

This allows builds to succeed while still notifying developers of binding issues
that will fall back to reflection-based bindings at runtime.
Modified SourceGenContext.ReportDiagnostic to check the NoWarn metadata
from XAML files and suppress matching diagnostic IDs. This allows per-file
suppression of source generator diagnostics (like MAUIG2043 and MAUIG2045).

Added NoWarn entries for XAML unit test files that intentionally have
invalid bindings to test fallback to reflection-based bindings.

Also fixed Maui32879Tests to include the #pragma warning disable CS0219
line that was added in recent changes.
The BindingPropertyNotFound diagnostic is now a Warning instead of Error
because the MAUI source generator cannot always see properties generated
by other source generators (e.g., CommunityToolkit.Mvvm's [ObservableProperty]
or custom bindable property generators).

While this diagnostic might indicate a typo in the binding path, it could also
be a valid property that will exist at runtime but is not visible during the
MAUI XAML compilation phase due to source generator execution ordering.

When this warning occurs:
- The binding compilation falls back to reflection-based binding (slower)
- The binding will work correctly at runtime if the property exists
- Users are informed that the property might be source-generated
- Users are encouraged to report issues to help improve interoperability

Changes:
- Updated Descriptors.cs: Error -> Warning severity with explanatory comments
- Updated MauiGResources.resx: Enhanced message to explain the limitation
- Updated AnalyzerReleases.Unshipped.md: Reflected severity change
- Updated test expectations: DiagnosticSeverity.Error -> Warning
- Removed NoWarn entries: No longer needed since it's a warning
- Added inline comments explaining the reasoning in code
@PureWeen PureWeen force-pushed the copilot/improve-diagnostic-reporting branch from 5a8f59e to 6f682dd Compare January 14, 2026 22:07
@PureWeen PureWeen merged commit 25d8d82 into inflight/current Jan 14, 2026
1 of 12 checks passed
@PureWeen PureWeen deleted the copilot/improve-diagnostic-reporting branch January 14, 2026 22:17
@github-project-automation github-project-automation bot moved this from Approved to Done in MAUI SDK Ongoing Jan 14, 2026
github-actions bot pushed a commit that referenced this pull request Jan 16, 2026
- [x] Analyze the issue - understand TODOs in binding compilation logic
- [x] Identify files to modify: `CompiledBindingMarkup.cs`,
`KnownMarkups.cs`, `Descriptors.cs`, `MauiGResources.resx`, etc.
- [x] Build and test baseline (100 tests passing)
- [x] Add new diagnostic descriptors for binding-related errors
(matching XamlC error codes)
  - MAUIG2041: BindingIndexerNotClosed (matching XC0041)
  - MAUIG2042: BindingIndexerEmpty (matching XC0042)
  - MAUIG2043: BindingIndexerTypeUnsupported (matching XC0043)
  - MAUIG2045: BindingPropertyNotFound (matching XC0045)
- MAUIG2024: BindingWithXDataTypeFromOuterScope warning (matching
XC0024)
  - MAUIG2064: NamescopeDuplicate (matching XC0064)
- [x] Replace `return false; // TODO report diagnostic` with actual
diagnostic reporting
- [x] Replace `throw new Exception` with diagnostic reporting
- [x] Update resource strings to match XamlC messages
- [x] Add unit tests for the new diagnostics (6 tests)
- [x] Update AnalyzerReleases.Unshipped.md
- [x] Build and test (147 tests passing)
- [x] Run code review and address feedback
- [x] Run CodeQL checker (no security issues found)
- [x] Revert unrelated formatting changes
- [x] Fix alignment in Descriptors.cs
- [x] Change diagnostic prefix from MAUIX to MAUIG per reviewer feedback
- [x] Remove unreachable code in CompiledBindingMarkup.cs
- [x] Add missing test scenarios for MAUIG2024 and MAUIG2043 diagnostics
- [x] Support NoWarn metadata for source generator diagnostics
- [x] Add MAUIG2045 to NoWarn for test XAML files with intentional
binding errors
- [x] Address latest code review feedback:
- Refactored repeated indexer lookup pattern into reusable local
function
  - Removed localized message checks from diagnostic tests
- Fixed IndexerBindings test assertions to properly validate lambda
context using regex patterns that match actual generated code structure

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>[XSG] Improve diagnostic reporting during binding
compilation</issue_title>
> <issue_description>We left several todos in the binding compilation
logic in the XAML source generator. We should try to match the warnings
and errors produced by XamlC, just with an adjusted error
code.</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes #32904

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: Simon Rozsival <simon@rozsival.com>
github-actions bot pushed a commit that referenced this pull request Jan 20, 2026
- [x] Analyze the issue - understand TODOs in binding compilation logic
- [x] Identify files to modify: `CompiledBindingMarkup.cs`,
`KnownMarkups.cs`, `Descriptors.cs`, `MauiGResources.resx`, etc.
- [x] Build and test baseline (100 tests passing)
- [x] Add new diagnostic descriptors for binding-related errors
(matching XamlC error codes)
  - MAUIG2041: BindingIndexerNotClosed (matching XC0041)
  - MAUIG2042: BindingIndexerEmpty (matching XC0042)
  - MAUIG2043: BindingIndexerTypeUnsupported (matching XC0043)
  - MAUIG2045: BindingPropertyNotFound (matching XC0045)
- MAUIG2024: BindingWithXDataTypeFromOuterScope warning (matching
XC0024)
  - MAUIG2064: NamescopeDuplicate (matching XC0064)
- [x] Replace `return false; // TODO report diagnostic` with actual
diagnostic reporting
- [x] Replace `throw new Exception` with diagnostic reporting
- [x] Update resource strings to match XamlC messages
- [x] Add unit tests for the new diagnostics (6 tests)
- [x] Update AnalyzerReleases.Unshipped.md
- [x] Build and test (147 tests passing)
- [x] Run code review and address feedback
- [x] Run CodeQL checker (no security issues found)
- [x] Revert unrelated formatting changes
- [x] Fix alignment in Descriptors.cs
- [x] Change diagnostic prefix from MAUIX to MAUIG per reviewer feedback
- [x] Remove unreachable code in CompiledBindingMarkup.cs
- [x] Add missing test scenarios for MAUIG2024 and MAUIG2043 diagnostics
- [x] Support NoWarn metadata for source generator diagnostics
- [x] Add MAUIG2045 to NoWarn for test XAML files with intentional
binding errors
- [x] Address latest code review feedback:
- Refactored repeated indexer lookup pattern into reusable local
function
  - Removed localized message checks from diagnostic tests
- Fixed IndexerBindings test assertions to properly validate lambda
context using regex patterns that match actual generated code structure

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>[XSG] Improve diagnostic reporting during binding
compilation</issue_title>
> <issue_description>We left several todos in the binding compilation
logic in the XAML source generator. We should try to match the warnings
and errors produced by XamlC, just with an adjusted error
code.</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes #32904

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: Simon Rozsival <simon@rozsival.com>
github-actions bot pushed a commit that referenced this pull request Jan 21, 2026
- [x] Analyze the issue - understand TODOs in binding compilation logic
- [x] Identify files to modify: `CompiledBindingMarkup.cs`,
`KnownMarkups.cs`, `Descriptors.cs`, `MauiGResources.resx`, etc.
- [x] Build and test baseline (100 tests passing)
- [x] Add new diagnostic descriptors for binding-related errors
(matching XamlC error codes)
  - MAUIG2041: BindingIndexerNotClosed (matching XC0041)
  - MAUIG2042: BindingIndexerEmpty (matching XC0042)
  - MAUIG2043: BindingIndexerTypeUnsupported (matching XC0043)
  - MAUIG2045: BindingPropertyNotFound (matching XC0045)
- MAUIG2024: BindingWithXDataTypeFromOuterScope warning (matching
XC0024)
  - MAUIG2064: NamescopeDuplicate (matching XC0064)
- [x] Replace `return false; // TODO report diagnostic` with actual
diagnostic reporting
- [x] Replace `throw new Exception` with diagnostic reporting
- [x] Update resource strings to match XamlC messages
- [x] Add unit tests for the new diagnostics (6 tests)
- [x] Update AnalyzerReleases.Unshipped.md
- [x] Build and test (147 tests passing)
- [x] Run code review and address feedback
- [x] Run CodeQL checker (no security issues found)
- [x] Revert unrelated formatting changes
- [x] Fix alignment in Descriptors.cs
- [x] Change diagnostic prefix from MAUIX to MAUIG per reviewer feedback
- [x] Remove unreachable code in CompiledBindingMarkup.cs
- [x] Add missing test scenarios for MAUIG2024 and MAUIG2043 diagnostics
- [x] Support NoWarn metadata for source generator diagnostics
- [x] Add MAUIG2045 to NoWarn for test XAML files with intentional
binding errors
- [x] Address latest code review feedback:
- Refactored repeated indexer lookup pattern into reusable local
function
  - Removed localized message checks from diagnostic tests
- Fixed IndexerBindings test assertions to properly validate lambda
context using regex patterns that match actual generated code structure

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>[XSG] Improve diagnostic reporting during binding
compilation</issue_title>
> <issue_description>We left several todos in the binding compilation
logic in the XAML source generator. We should try to match the warnings
and errors produced by XamlC, just with an adjusted error
code.</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes #32904

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: Simon Rozsival <simon@rozsival.com>
github-actions bot pushed a commit that referenced this pull request Jan 23, 2026
- [x] Analyze the issue - understand TODOs in binding compilation logic
- [x] Identify files to modify: `CompiledBindingMarkup.cs`,
`KnownMarkups.cs`, `Descriptors.cs`, `MauiGResources.resx`, etc.
- [x] Build and test baseline (100 tests passing)
- [x] Add new diagnostic descriptors for binding-related errors
(matching XamlC error codes)
  - MAUIG2041: BindingIndexerNotClosed (matching XC0041)
  - MAUIG2042: BindingIndexerEmpty (matching XC0042)
  - MAUIG2043: BindingIndexerTypeUnsupported (matching XC0043)
  - MAUIG2045: BindingPropertyNotFound (matching XC0045)
- MAUIG2024: BindingWithXDataTypeFromOuterScope warning (matching
XC0024)
  - MAUIG2064: NamescopeDuplicate (matching XC0064)
- [x] Replace `return false; // TODO report diagnostic` with actual
diagnostic reporting
- [x] Replace `throw new Exception` with diagnostic reporting
- [x] Update resource strings to match XamlC messages
- [x] Add unit tests for the new diagnostics (6 tests)
- [x] Update AnalyzerReleases.Unshipped.md
- [x] Build and test (147 tests passing)
- [x] Run code review and address feedback
- [x] Run CodeQL checker (no security issues found)
- [x] Revert unrelated formatting changes
- [x] Fix alignment in Descriptors.cs
- [x] Change diagnostic prefix from MAUIX to MAUIG per reviewer feedback
- [x] Remove unreachable code in CompiledBindingMarkup.cs
- [x] Add missing test scenarios for MAUIG2024 and MAUIG2043 diagnostics
- [x] Support NoWarn metadata for source generator diagnostics
- [x] Add MAUIG2045 to NoWarn for test XAML files with intentional
binding errors
- [x] Address latest code review feedback:
- Refactored repeated indexer lookup pattern into reusable local
function
  - Removed localized message checks from diagnostic tests
- Fixed IndexerBindings test assertions to properly validate lambda
context using regex patterns that match actual generated code structure

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>[XSG] Improve diagnostic reporting during binding
compilation</issue_title>
> <issue_description>We left several todos in the binding compilation
logic in the XAML source generator. We should try to match the warnings
and errors produced by XamlC, just with an adjusted error
code.</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes #32904

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: Simon Rozsival <simon@rozsival.com>
PureWeen pushed a commit that referenced this pull request Jan 23, 2026
- [x] Analyze the issue - understand TODOs in binding compilation logic
- [x] Identify files to modify: `CompiledBindingMarkup.cs`,
`KnownMarkups.cs`, `Descriptors.cs`, `MauiGResources.resx`, etc.
- [x] Build and test baseline (100 tests passing)
- [x] Add new diagnostic descriptors for binding-related errors
(matching XamlC error codes)
  - MAUIG2041: BindingIndexerNotClosed (matching XC0041)
  - MAUIG2042: BindingIndexerEmpty (matching XC0042)
  - MAUIG2043: BindingIndexerTypeUnsupported (matching XC0043)
  - MAUIG2045: BindingPropertyNotFound (matching XC0045)
- MAUIG2024: BindingWithXDataTypeFromOuterScope warning (matching
XC0024)
  - MAUIG2064: NamescopeDuplicate (matching XC0064)
- [x] Replace `return false; // TODO report diagnostic` with actual
diagnostic reporting
- [x] Replace `throw new Exception` with diagnostic reporting
- [x] Update resource strings to match XamlC messages
- [x] Add unit tests for the new diagnostics (6 tests)
- [x] Update AnalyzerReleases.Unshipped.md
- [x] Build and test (147 tests passing)
- [x] Run code review and address feedback
- [x] Run CodeQL checker (no security issues found)
- [x] Revert unrelated formatting changes
- [x] Fix alignment in Descriptors.cs
- [x] Change diagnostic prefix from MAUIX to MAUIG per reviewer feedback
- [x] Remove unreachable code in CompiledBindingMarkup.cs
- [x] Add missing test scenarios for MAUIG2024 and MAUIG2043 diagnostics
- [x] Support NoWarn metadata for source generator diagnostics
- [x] Add MAUIG2045 to NoWarn for test XAML files with intentional
binding errors
- [x] Address latest code review feedback:
- Refactored repeated indexer lookup pattern into reusable local
function
  - Removed localized message checks from diagnostic tests
- Fixed IndexerBindings test assertions to properly validate lambda
context using regex patterns that match actual generated code structure

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> 
> ----
> 
> *This section details on the original issue you should resolve*
> 
> <issue_title>[XSG] Improve diagnostic reporting during binding
compilation</issue_title>
> <issue_description>We left several todos in the binding compilation
logic in the XAML source generator. We should try to match the warnings
and errors produced by XamlC, just with an adjusted error
code.</issue_description>
> 
> ## Comments on the Issue (you are @copilot in this section)
> 
> <comments>
> </comments>
> 


</details>

- Fixes #32904

<!-- START COPILOT CODING AGENT TIPS -->
---

💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: simonrozsival <374616+simonrozsival@users.noreply.github.com>
Co-authored-by: Simon Rozsival <simon@rozsival.com>
PureWeen added a commit that referenced this pull request Jan 25, 2026
## What's Coming

.NET MAUI inflight/candidate introduces significant improvements across
all platforms with focus on quality, performance, and developer
experience. This release includes 16 commits with various improvements,
bug fixes, and enhancements.


## Checkbox
- [Android] Implement material3 support for CheckBox by
@HarishwaranVijayakumar in #33339
  <details>
  <summary>🔧 Fixes</summary>

- [Implement Material3 Support for
CheckBox](#33338)
  </details>

## CollectionView
- [Android] Fixed EmptyView doesn’t display when CollectionView is
placed inside a VerticalStackLayout by @NanthiniMahalingam in
#33134
  <details>
  <summary>🔧 Fixes</summary>

- [CollectionView does not show an EmptyView template with an empty
collection](#32932)
  </details>

## Essentials
- [Windows]Fix NullReferenceException in OpenReadAsync for FileResult
created with full path by @devanathan-vaithiyanathan in
#28238
  <details>
  <summary>🔧 Fixes</summary>

- [[Windows] FileResult(string fullPath) not initialized
properly](#26858)
  </details>

## Image
- Fix Glide IllegalArgumentException in MauiCustomTarget.clear() for
destroyed activities by @jfversluis via @Copilot in
#29780
  <details>
  <summary>🔧 Fixes</summary>

- [java.lang.IllegalArgumentException: You cannot start a load for a
destroyed activity - glide](#29699)
  </details>

## Label
- [Android] Fix for Label WordWrap width issue causing HorizontalOptions
misalignment by @praveenkumarkarunanithi in
#33281
  <details>
  <summary>🔧 Fixes</summary>

- [[Android] Unexpected Line Breaks in Android, Label with WordWrap Mode
Due to Trailing Space.](#31782)
- [Label not sized correctly on
Android](#27614)
  </details>

- Fix to Improve Flyout Accessibility by Adjusting UITableViewController
Labels by @SuthiYuvaraj in #31619
  <details>
  <summary>🔧 Fixes</summary>

- [Navigation section present under hamburger are programmatically
define as table :A11y_.NET maui_User can get all the insights of
Dashboard_Devtools](#30894)
  </details>

## Mediapicker
- [Regression][iOS] Fix MediaPicker PickPhotosAsync getting file name in
contentType property by @devanathan-vaithiyanathan in
#33390
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS] MediaPicker PickPhotosAsync getting file name in contentType
property](#33348)
  </details>

## Navigation
- Fix handler not disconnected when removing non visible pages using
RemovePage() by @Vignesh-SF3580 in
#32289
  <details>
  <summary>🔧 Fixes</summary>

- [NavigationPage.Navigation.RemovePage() fails to disconnect handlers
when removing pages, unlike
ContentPage.Navigation.RemovePage()](#32239)
  </details>

## Picker
- [Android] Fix Picker IsOpen not reset when picker is dismissed by
@devanathan-vaithiyanathan in #33332
  <details>
  <summary>🔧 Fixes</summary>

- [[Android] Picker IsOpen not reset when picker is
dismissed](#33331)
  </details>

## Shell
- [iOS & Catalyst ] Fixed IsEnabled property should work on Tabs by
@SubhikshaSf4851 in #33369
  <details>
  <summary>🔧 Fixes</summary>

- [[Catalyst] TabBarBackgroundColor, TabBarUnselectedColor, and
IsEnabled Not Working as Expected in
Shell](#33158)
  </details>

- [iOS,Windows] Fix navigation bar colors not resetting when switching
ShellContent by @Vignesh-SF3580 in
#33228
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS, Windows] Shell Navigation bar colors are not updated correctly
when switching
ShellContent](#33227)
  </details>

- [iOS] Fixed Shell navigation on search handler suggestion selection by
@SubhikshaSf4851 in #33406
  <details>
  <summary>🔧 Fixes</summary>

- [[iOS] Clicking on search suggestions fails to navigate to detail page
correctly](#33356)
  </details>

## Templates
- Fix VoiceOver doesnot announces the State of the ComboBox by
@SuthiYuvaraj in #32286

## Xaml
- [XSG][BindingSourceGen] Add support for CommunityToolkit.Mvvm
ObservablePropertyAttribute by @simonrozsival via @Copilot in
#33028
  <details>
  <summary>🔧 Fixes</summary>

- [[XSG] Add heuristic to support bindable properties generated by other
source generators](#32597)
  </details>


<details>
<summary>📦 Other (2)</summary>

- [XSG] Improve diagnostic reporting during binding compilation by
@simonrozsival via @Copilot in #32905
- [Testing] Fixed Test case failure in PR 33574 - [01/19/2026] Candidate
- 1 by @TamilarasanSF4853 in #33602

</details>
**Full Changelog**:
main...inflight/candidate
@github-actions github-actions bot locked and limited conversation to collaborators Feb 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[XSG] Improve diagnostic reporting during binding compilation

4 participants