diff --git a/src/Avalonia.Base/AvaloniaProperty.cs b/src/Avalonia.Base/AvaloniaProperty.cs index 59a61e3424..f2e90bb6d7 100644 --- a/src/Avalonia.Base/AvaloniaProperty.cs +++ b/src/Avalonia.Base/AvaloniaProperty.cs @@ -177,7 +177,7 @@ namespace Avalonia { return new IndexerDescriptor { - Priority = BindingPriority.TemplatedParent, + Priority = BindingPriority.Template, Property = property, }; } diff --git a/src/Avalonia.Base/Data/BindingPriority.cs b/src/Avalonia.Base/Data/BindingPriority.cs index dd1654f53c..5fd5aae43b 100644 --- a/src/Avalonia.Base/Data/BindingPriority.cs +++ b/src/Avalonia.Base/Data/BindingPriority.cs @@ -1,7 +1,9 @@ +using System; + namespace Avalonia.Data { /// - /// The priority of a binding. + /// The priority of a value or binding. /// public enum BindingPriority { @@ -16,23 +18,22 @@ namespace Avalonia.Data LocalValue = 0, /// - /// A triggered style binding. + /// A triggered style value. /// /// /// A style trigger is a selector such as .class which overrides a - /// 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. + /// value. In this way, a control can have, e.g. a Background from + /// the template which changes when the control has the :pointerover class. /// StyleTrigger, /// - /// A binding to a property on the templated parent. + /// A value from the control's template. /// - TemplatedParent, + Template, /// - /// A style binding. + /// A style value. /// Style, @@ -42,8 +43,11 @@ namespace Avalonia.Data Inherited, /// - /// The binding is uninitialized. + /// The value is uninitialized. /// Unset = int.MaxValue, + + [Obsolete("Use Template priority")] + TemplatedParent = Template, } } diff --git a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs index 8b36b07cec..7fed6cb82c 100644 --- a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs +++ b/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; diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlControlTemplatePriorityTransformer.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlControlTemplatePriorityTransformer.cs index 6cab68e756..76fd07f15c 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlControlTemplatePriorityTransformer.cs +++ b/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)); } } diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/DynamicResourceExtension.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/DynamicResourceExtension.cs index f13ecab4e1..56b653ca47 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/DynamicResourceExtension.cs +++ b/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(); diff --git a/src/Markup/Avalonia.Markup/Data/TemplateBinding.cs b/src/Markup/Avalonia.Markup/Data/TemplateBinding.cs index 4a3538fff2..0d8925c6fa 100644 --- a/src/Markup/Avalonia.Markup/Data/TemplateBinding.cs +++ b/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 { diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_SetValue.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_SetValue.cs index 72162a4d8e..f878977cf2 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_SetValue.cs +++ b/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)); diff --git a/tests/Avalonia.Benchmarks/Base/StyledPropertyBenchmark.cs b/tests/Avalonia.Benchmarks/Base/StyledPropertyBenchmark.cs index b70ae19275..29bacc17bd 100644 --- a/tests/Avalonia.Benchmarks/Base/StyledPropertyBenchmark.cs +++ b/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); } } diff --git a/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs b/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs index 1e37093736..c1b7e8e6e5 100644 --- a/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs +++ b/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), }); diff --git a/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs index d1fa522206..89c31a28c6 100644 --- a/tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs +++ b/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)); diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs index 23a330c96f..4680f38d94 100644 --- a/tests/Avalonia.Controls.UnitTests/TextBoxTests.cs +++ b/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)); diff --git a/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs b/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs index 48cc365029..2b243f7282 100644 --- a/tests/Avalonia.Controls.UnitTests/TextBoxTests_DataValidation.cs +++ b/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)); diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs index 13f2681584..44829aae1e 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests_DataValidation.cs +++ b/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; diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs index 203ec5ee3b..ccf44aaee2 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/ControlTemplateTests.cs +++ b/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); } }