Add DoNothingForNullConverter to Fix Color Palette Binding #8829
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does the pull request do?
Fixes binding of the nullable selected palette color with the non-nullable Color property within the ColorView.
This issue was first discovered in the Windows Community Toolkit:
What is the current behavior?
Avalonia behaves differently than WinUI/UWP. Instead of just throwing binding errors, Avalonia will clear the color (set it to the default #00000000 when null is attempted to be set).
This results in the color disappearing when opening with the palette tab selected.
Issue.mp4
What is the updated/expected behavior with this PR?
This PR fixes the issue of reset colors by simply ignoring binding updates when null is encountered in this situation. The simple DoNothingForNullConverter enables binding of a non-nullable with nullable property in this scenario.
Fix.mp4
Checklist
Breaking changes
None
Obsoletions / Deprecations
None
Fixed issues
None opened for this