summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-02-24 09:10:11 +0100
committerGitHub <noreply@github.com>2017-02-24 09:10:11 +0100
commit6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642 (patch)
tree48831a65456dde1c61ace60b39fdf1b9330e621e
parent81d6812dc9069b7c29727cf039465fbc244a94cc (diff)
downloadxamarin-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
-rw-r--r--Xamarin.Forms.Core/Interactivity/BindingCondition.cs1
-rw-r--r--Xamarin.Forms.Core/Interactivity/DataTrigger.cs1
-rw-r--r--Xamarin.Forms.Pages/DataSourceBindingExtension.cs1
-rw-r--r--Xamarin.Forms.Xaml/MarkupExtensions/ArrayExtension.cs1
-rw-r--r--Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs1
-rw-r--r--Xamarin.Forms.Xaml/MarkupExtensions/NullExtension.cs3
-rw-r--r--Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs1
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/BindingCondition.xml5
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/DataTrigger.xml3
-rw-r--r--docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/ArrayExtension.xml3
-rw-r--r--docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/BindingExtension.xml3
-rw-r--r--docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/NullExtension.xml3
-rw-r--r--docs/Xamarin.Forms.Xaml/Xamarin.Forms.Xaml/TemplateBindingExtension.xml3
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>