Browse Source

Disallow attached property resolution from base types.

Markup such as `<TextBlock TextBox.Text="foo"/>` was resolving the `TextBlock.Text` attached property to `TemplatedControl.Text` but according to tests against WPF this shouldn't be allowed.

Fixed by not searching base classes when resolving attached properties.
fixes/7925-attached-property-syntax
Steven Kirk 4 years ago
parent
commit
8a0010ba95
  1. 2
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs

2
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlTransformInstanceAttachedProperties.cs

@ -25,7 +25,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
&& !declaringRef.Type.IsAssignableFrom(targetRef.Type))
{
// Instance property
var clrProp = declaringRef.Type.GetAllProperties().FirstOrDefault(p => p.Name == prop.Name);
var clrProp = declaringRef.Type.Properties.FirstOrDefault(p => p.Name == prop.Name);
if (clrProp != null
&& (clrProp.Getter?.IsStatic == false || clrProp.Setter?.IsStatic == false))
{

Loading…
Cancel
Save