diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2017-02-24 09:10:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-24 09:10:11 +0100 |
commit | 6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642 (patch) | |
tree | 48831a65456dde1c61ace60b39fdf1b9330e621e | |
parent | 81d6812dc9069b7c29727cf039465fbc244a94cc (diff) | |
download | xamarin-forms-6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642.tar.gz xamarin-forms-6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642.tar.bz2 xamarin-forms-6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642.zip |
[Xaml] decorate markup and value providers to speed up inflating (#770)
* [Xaml] decorate markup and value providers to speed up inflating
* update docs
* fix docs
13 files changed, 28 insertions, 1 deletions
diff --git a/Xamarin.Forms.Core/Interactivity/BindingCondition.cs b/Xamarin.Forms.Core/Interactivity/BindingCondition.cs index ccf55e58..0ff9e8fe 100644 --- a/Xamarin.Forms.Core/Interactivity/BindingCondition.cs +++ b/Xamarin.Forms.Core/Interactivity/BindingCondition.cs @@ -4,6 +4,7 @@ using Xamarin.Forms.Xaml; namespace Xamarin.Forms { [ProvideCompiled("Xamarin.Forms.Core.XamlC.PassthroughValueProvider")] + [AcceptEmptyServiceProvider] public sealed class BindingCondition : Condition, IValueProvider { readonly BindableProperty _boundProperty; diff --git a/Xamarin.Forms.Core/Interactivity/DataTrigger.cs b/Xamarin.Forms.Core/Interactivity/DataTrigger.cs index d90cf44e..0eb45be5 100644 --- a/Xamarin.Forms.Core/Interactivity/DataTrigger.cs +++ b/Xamarin.Forms.Core/Interactivity/DataTrigger.cs @@ -6,6 +6,7 @@ namespace Xamarin.Forms { [ContentProperty("Setters")] [ProvideCompiled("Xamarin.Forms.Core.XamlC.PassthroughValueProvider")] + [AcceptEmptyServiceProvider] public sealed class DataTrigger : TriggerBase, IValueProvider { public DataTrigger([TypeConverter(typeof(TypeTypeConverter))] [Parameter("TargetType")] Type targetType) : base(new BindingCondition(), targetType) diff --git a/Xamarin.Forms.Pages/DataSourceBindingExtension.cs b/Xamarin.Forms.Pages/DataSourceBindingExtension.cs index 279240e7..0b07476b 100644 --- a/Xamarin.Forms.Pages/DataSourceBindingExtension.cs +++ b/Xamarin.Forms.Pages/DataSourceBindingExtension.cs @@ -4,6 +4,7 @@ using Xamarin.Forms.Xaml; namespace Xamarin.Forms.Pages { [ContentProperty("Path")] + [AcceptEmptyServiceProvider] public sealed class DataSourceBindingExtension : IMarkupExtension<BindingBase> { public DataSourceBindingExtension() diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/ArrayExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/ArrayExtension.cs index 9f594132..80c4f825 100644 --- a/Xamarin.Forms.Xaml/MarkupExtensions/ArrayExtension.cs +++ b/Xamarin.Forms.Xaml/MarkupExtensions/ArrayExtension.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; namespace Xamarin.Forms.Xaml { [ContentProperty("Items")] + [AcceptEmptyServiceProvider] public class ArrayExtension : IMarkupExtension<Array> { public ArrayExtension() diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs index df82771d..d3d5a519 100644 --- a/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs +++ b/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs @@ -4,6 +4,7 @@ using Xamarin.Forms.Internals; namespace Xamarin.Forms.Xaml { [ContentProperty("Path")] + [AcceptEmptyServiceProvider] public sealed class BindingExtension : IMarkupExtension<BindingBase> { public BindingExtension() diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs index 6bdab684..4ce40ae6 100644 --- a/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs +++ b/Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs @@ -3,6 +3,7 @@ namespace Xamarin.Forms.Xaml { [ProvideCompiled("Xamarin.Forms.Build.Tasks.NullExtension")] + [AcceptEmptyServiceProvider] public class NullExtension : IMarkupExtension { public object ProvideValue(IServiceProvider serviceProvider) @@ -10,4 +11,4 @@ namespace Xamarin.Forms.Xaml return null; } } -}
\ No newline at end of file +} diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs index c14f9f94..cc0dfd74 100644 --- a/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs +++ b/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs @@ -3,6 +3,7 @@ using System; namespace Xamarin.Forms.Xaml { [ContentProperty("Path")] + [AcceptEmptyServiceProvider] public sealed class TemplateBindingExtension : IMarkupExtension<BindingBase> { public TemplateBindingExtension() diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/BindingCondition.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/BindingCondition.xml index b88d3135..ddebc6dc 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/BindingCondition.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/BindingCondition.xml @@ -16,6 +16,11 @@ <InterfaceName>Xamarin.Forms.Xaml.IValueProvider</InterfaceName> </Interface> </Interfaces> + <Attributes> + <Attribute> + <AttributeName>Xamarin.Forms.Xaml.AcceptEmptyServiceProvider</AttributeName> + </Attribute> + </Attributes> <Docs> <summary>Class that represents a value comparison with the target of an arbitrary binding.</summary> <remarks>To be added.</remarks> diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/DataTrigger.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/DataTrigger.xml index 39337fe0..e5758fc9 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/DataTrigger.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/DataTrigger.xml @@ -20,6 +20,9 @@ <Attribute> <AttributeName>Xamarin.Forms.ContentProperty("Setters")</AttributeName> </Attribute> + <Attribute> + <AttributeName>Xamarin.Forms.Xaml.AcceptEmptyServiceProvider</AttributeName> + </Attribute> </Attributes> <Docs> <summary>Class that represents a binding condition and a list of <see cref="T:Xamarin.Forms.Setter" /> objects that will be applied when the condition is met.</summary> diff --git a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/ArrayExtension.xml b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/ArrayExtension.xml index 91d847df..95e1fa38 100644 --- a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/ArrayExtension.xml +++ b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/ArrayExtension.xml @@ -22,6 +22,9 @@ <Attribute> <AttributeName>Xamarin.Forms.ContentProperty("Items")</AttributeName> </Attribute> + <Attribute> + <AttributeName>Xamarin.Forms.Xaml.AcceptEmptyServiceProvider</AttributeName> + </Attribute> </Attributes> <Docs> <summary>For internal use by the XAML infrastructure.</summary> diff --git a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/BindingExtension.xml b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/BindingExtension.xml index 40123d08..c210c3a7 100644 --- a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/BindingExtension.xml +++ b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/BindingExtension.xml @@ -19,6 +19,9 @@ <Attribute> <AttributeName>Xamarin.Forms.ContentProperty("Path")</AttributeName> </Attribute> + <Attribute> + <AttributeName>Xamarin.Forms.Xaml.AcceptEmptyServiceProvider</AttributeName> + </Attribute> </Attributes> <Docs> <summary>For internal use by the XAML infrastructure.</summary> diff --git a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/NullExtension.xml b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/NullExtension.xml index 9fd2b700..3116afda 100644 --- a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/NullExtension.xml +++ b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/NullExtension.xml @@ -20,6 +20,9 @@ </Interfaces> <Attributes> <Attribute> + <AttributeName>Xamarin.Forms.Xaml.AcceptEmptyServiceProvider</AttributeName> + </Attribute> + <Attribute> <AttributeName>Xamarin.Forms.Xaml.ProvideCompiled("Xamarin.Forms.Build.Tasks.NullExtension")</AttributeName> </Attribute> </Attributes> diff --git a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TemplateBindingExtension.xml b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TemplateBindingExtension.xml index c546ecec..024392be 100644 --- a/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TemplateBindingExtension.xml +++ b/docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TemplateBindingExtension.xml @@ -17,6 +17,9 @@ <Attribute> <AttributeName>Xamarin.Forms.ContentProperty("Path")</AttributeName> </Attribute> + <Attribute> + <AttributeName>Xamarin.Forms.Xaml.AcceptEmptyServiceProvider</AttributeName> + </Attribute> </Attributes> <Docs> <summary>For internal use by the XAML infrastructure.</summary> |