diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2016-08-15 22:18:26 +0200 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-08-15 13:18:26 -0700 |
commit | a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32 (patch) | |
tree | d586aaffcf721ef9cd7558335757050a9c8b1f2e /Xamarin.Forms.Build.Tasks | |
parent | 90396b0ffdecf65b8e2eea8eb4f148bdea1071c4 (diff) | |
download | xamarin-forms-a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32.tar.gz xamarin-forms-a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32.tar.bz2 xamarin-forms-a1126ab66bc9bd41cfa32dbefbe5758bcf5b4b32.zip |
[Xaml] Simplify listnodes with single elements (#304)
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs index b6bdf40b..5e11fe1d 100644 --- a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs @@ -79,6 +79,15 @@ namespace Xamarin.Forms.Build.Tasks public void Visit(ElementNode node, INode parentNode) { + XmlName propertyName = XmlName.Empty; + + //Simplify ListNodes with single elements + var pList = parentNode as ListNode; + if (pList != null && pList.CollectionItems.Count == 1) { + propertyName = pList.XmlName; + parentNode = parentNode.Parent; + } + //if this node is an IMarkupExtension, invoke ProvideValue() and replace the variable var vardef = Context.Variables[node]; var vardefref = new VariableDefinitionReference(vardef); @@ -90,8 +99,7 @@ namespace Xamarin.Forms.Build.Tasks Context.Variables[node] = vardef; } - XmlName propertyName; - if (TryGetPropertyName(node, parentNode, out propertyName)) + if (propertyName != XmlName.Empty || TryGetPropertyName(node, parentNode, out propertyName)) { if (skips.Contains(propertyName)) return; @@ -675,4 +683,4 @@ namespace Xamarin.Forms.Build.Tasks return vardefref.VariableDefinition; } } -}
\ No newline at end of file +} |