Browse Source

Rename TemplatedParent priority to Template.

It no longer represents just `TemplatedParent` bindings, but every value or binding created by a template.
pull/9500/head
Steven Kirk 4 years ago
parent
commit
1945345cd1
  1. 2
      src/Avalonia.Base/AvaloniaProperty.cs
  2. 22
      src/Avalonia.Base/Data/BindingPriority.cs
  3. 2
      src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
  4. 2
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlControlTemplatePriorityTransformer.cs
  5. 2
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/DynamicResourceExtension.cs
  6. 2
      src/Markup/Avalonia.Markup/Data/TemplateBinding.cs
  7. 2
      tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_SetValue.cs
  8. 2
      tests/Avalonia.Benchmarks/Base/StyledPropertyBenchmark.cs
  9. 4
      tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
  10. 4
      tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
  11. 4
      tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
  12. 2
      tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs
  13. 2
      tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs
  14. 12
      tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs

2
src/Avalonia.Base/AvaloniaProperty.cs

@ -177,7 +177,7 @@ namespace Avalonia
{
return new IndexerDescriptor
{
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
Property = property,
};
}

22
src/Avalonia.Base/Data/BindingPriority.cs

@ -1,7 +1,9 @@
using System;
namespace Avalonia.Data
{
/// <summary>
/// The priority of a binding.
/// The priority of a value or binding.
/// </summary>
public enum BindingPriority
{
@ -16,23 +18,22 @@ namespace Avalonia.Data
LocalValue = 0,
/// <summary>
/// A triggered style binding.
/// A triggered style value.
/// </summary>
/// <remarks>
/// A style trigger is a selector such as .class which overrides a
/// <see cref="TemplatedParent"/> binding. In this way, a basic control can have
/// for example a Background from the templated parent which changes when the
/// control has the :pointerover class.
/// <see cref="Template"/> value. In this way, a control can have, e.g. a Background from
/// the template which changes when the control has the :pointerover class.
/// </remarks>
StyleTrigger,
/// <summary>
/// A binding to a property on the templated parent.
/// A value from the control's template.
/// </summary>
TemplatedParent,
Template,
/// <summary>
/// A style binding.
/// A style value.
/// </summary>
Style,
@ -42,8 +43,11 @@ namespace Avalonia.Data
Inherited,
/// <summary>
/// The binding is uninitialized.
/// The value is uninitialized.
/// </summary>
Unset = int.MaxValue,
[Obsolete("Use Template priority")]
TemplatedParent = Template,
}
}

2
src/Avalonia.Controls/Generators/ItemContainerGenerator.cs

@ -205,7 +205,7 @@ namespace Avalonia.Controls.Generators
result.SetValue(
StyledElement.ThemeProperty,
ItemContainerTheme,
BindingPriority.TemplatedParent);
BindingPriority.Template);
}
return result;

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

@ -42,7 +42,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
if (priorityValueSetters.Count > 0)
{
prop.PossibleSetters = priorityValueSetters;
prop.Values.Insert(0, new XamlConstantNode(node, bindingPriorityType, (int)BindingPriority.TemplatedParent));
prop.Values.Insert(0, new XamlConstantNode(node, bindingPriorityType, (int)BindingPriority.Template));
}
}

2
src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/DynamicResourceExtension.cs

@ -27,7 +27,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions
public IBinding ProvideValue(IServiceProvider serviceProvider)
{
if (serviceProvider.IsInControlTemplate())
_priority = BindingPriority.TemplatedParent;
_priority = BindingPriority.Template;
var provideTarget = serviceProvider.GetService<IProvideValueTarget>();

2
src/Markup/Avalonia.Markup/Data/TemplateBinding.cs

@ -51,7 +51,7 @@ namespace Avalonia.Data
return new InstancedBinding(
this,
Mode == BindingMode.Default ? BindingMode.OneWay : Mode,
BindingPriority.TemplatedParent);
BindingPriority.Template);
}
else
{

2
tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_SetValue.cs

@ -251,7 +251,7 @@ namespace Avalonia.Base.UnitTests
{
Class1 target = new Class1();
target.SetValue(Class1.FooProperty, "one", BindingPriority.TemplatedParent);
target.SetValue(Class1.FooProperty, "one", BindingPriority.Template);
Assert.Equal("one", target.GetValue(Class1.FooProperty));
target.SetValue(Class1.FooProperty, "two", BindingPriority.Style);
Assert.Equal("one", target.GetValue(Class1.FooProperty));

2
tests/Avalonia.Benchmarks/Base/StyledPropertyBenchmark.cs

@ -43,7 +43,7 @@ namespace Avalonia.Benchmarks.Base
for (var i = 0; i < 100; ++i)
{
obj.SetValue(StyledClass.IntValueProperty, obj.IntValue + 1, BindingPriority.TemplatedParent);
obj.SetValue(StyledClass.IntValueProperty, obj.IntValue + 1, BindingPriority.Template);
}
}

4
tests/Avalonia.Controls.UnitTests/ContentControlTests.cs

@ -292,13 +292,13 @@ namespace Avalonia.Controls.UnitTests
// as they are in Avalonia.Markup.Xaml.
DelayedBinding.Add(presenter, ContentPresenter.ContentProperty, new Binding("Content")
{
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
});
DelayedBinding.Add(presenter, ContentPresenter.ContentTemplateProperty, new Binding("ContentTemplate")
{
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
});

4
tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs

@ -895,14 +895,14 @@ namespace Avalonia.Controls.UnitTests
{
Path = nameof(TextPresenter.Text),
Mode = BindingMode.TwoWay,
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
},
[!!TextPresenter.CaretIndexProperty] = new Binding
{
Path = nameof(TextPresenter.CaretIndex),
Mode = BindingMode.TwoWay,
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
}
}.RegisterInNameScope(scope));

4
tests/Avalonia.Controls.UnitTests/TextBoxTests.cs

@ -891,14 +891,14 @@ namespace Avalonia.Controls.UnitTests
{
Path = nameof(TextPresenter.Text),
Mode = BindingMode.TwoWay,
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
},
[!!TextPresenter.CaretIndexProperty] = new Binding
{
Path = nameof(TextPresenter.CaretIndex),
Mode = BindingMode.TwoWay,
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
}
}.RegisterInNameScope(scope));

2
tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs

@ -100,7 +100,7 @@ namespace Avalonia.Controls.UnitTests
{
Path = "Text",
Mode = BindingMode.TwoWay,
Priority = BindingPriority.TemplatedParent,
Priority = BindingPriority.Template,
RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent),
},
}.RegisterInNameScope(scope));

2
tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs

@ -54,7 +54,7 @@ namespace Avalonia.Markup.UnitTests.Data
DataContext = new Class1(),
};
var target = new Binding(nameof(Class1.Foo)) { Priority = BindingPriority.TemplatedParent };
var target = new Binding(nameof(Class1.Foo)) { Priority = BindingPriority.Template };
var instanced = target.Initiate(textBlock, TextBlock.TextProperty, enableDataValidation: true);
var subject = (BindingExpression)instanced.Subject;
object result = null;

12
tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs

@ -77,7 +77,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal(Brushes.Red, presenter.Background);
var diagnostic = presenter.GetDiagnostic(Button.BackgroundProperty);
Assert.Equal(BindingPriority.TemplatedParent, diagnostic.Priority);
Assert.Equal(BindingPriority.Template, diagnostic.Priority);
}
}
@ -111,7 +111,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal(Brushes.Red, presenter.Background);
var diagnostic = presenter.GetDiagnostic(Button.BackgroundProperty);
Assert.Equal(BindingPriority.TemplatedParent, diagnostic.Priority);
Assert.Equal(BindingPriority.Template, diagnostic.Priority);
}
}
@ -142,7 +142,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal(Dock.Top, DockPanel.GetDock(presenter));
var diagnostic = presenter.GetDiagnostic(DockPanel.DockProperty);
Assert.Equal(BindingPriority.TemplatedParent, diagnostic.Priority);
Assert.Equal(BindingPriority.Template, diagnostic.Priority);
}
}
@ -176,7 +176,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal(Brushes.Red, presenter.Background);
var diagnostic = presenter.GetDiagnostic(Button.BackgroundProperty);
Assert.Equal(BindingPriority.TemplatedParent, diagnostic.Priority);
Assert.Equal(BindingPriority.Template, diagnostic.Priority);
}
}
@ -210,7 +210,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal(Brushes.Red, presenter.Background);
var diagnostic = presenter.GetDiagnostic(Button.BackgroundProperty);
Assert.Equal(BindingPriority.TemplatedParent, diagnostic.Priority);
Assert.Equal(BindingPriority.Template, diagnostic.Priority);
}
}
@ -241,7 +241,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
Assert.Equal("Foo", presenter.Content);
var diagnostic = presenter.GetDiagnostic(ContentPresenter.ContentProperty);
Assert.Equal(BindingPriority.TemplatedParent, diagnostic.Priority);
Assert.Equal(BindingPriority.Template, diagnostic.Priority);
}
}

Loading…
Cancel
Save