Enable TemplateBinding inside ItemsPanelTemplate #17483
Merged
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?
This PR allows
TemplateBinding
to work insideItemsPanelTemplate
, or any specially annotated template type.What is the current behavior?
In avalonia 11.2, when trying to use
TemplateBinding
inside anItemsPanelTemplate
, this fails with AVLN3000: Unable to find the ControlTemplate scope for AvaloniaProperty lookup.What is the updated/expected behavior with this PR?
TemplateBinding
works inItemsPanelTemplate
. The target type is found on the parentStyle
or control.How was the solution implemented (if it's not obvious)?
A new attribute
[ControlTemplateScope]
has been added. Any template type annotated with this attribute is considered to be in control template scope:TemplateBinding
works, binding priorities are set toTemplate
, etc. (same behavior as a standardControlTemplate
)This attribute has been applied to
IControlTemplate
(effectively superseding #17427) andItemsPanelTemplate
.New unit tests have been added for
ItemsPanelTemplate
containingTemplateBinding
s.