diff options
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/CompiledValueProviders/SetterValueProvider.cs')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/CompiledValueProviders/SetterValueProvider.cs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CompiledValueProviders/SetterValueProvider.cs b/Xamarin.Forms.Build.Tasks/CompiledValueProviders/SetterValueProvider.cs index 482ee7c6..60c3328f 100644 --- a/Xamarin.Forms.Build.Tasks/CompiledValueProviders/SetterValueProvider.cs +++ b/Xamarin.Forms.Build.Tasks/CompiledValueProviders/SetterValueProvider.cs @@ -5,6 +5,7 @@ using Mono.Cecil.Cil; using Xamarin.Forms.Xaml; using Xamarin.Forms.Build.Tasks; +using System.Xml; namespace Xamarin.Forms.Core.XamlC { @@ -12,7 +13,12 @@ namespace Xamarin.Forms.Core.XamlC { public IEnumerable<Instruction> ProvideValue(VariableDefinitionReference vardefref, ModuleDefinition module, BaseNode node, ILContext context) { - var valueNode = ((IElementNode)node).Properties[new XmlName("", "Value")]; + INode valueNode = null; + if (!((IElementNode)node).Properties.TryGetValue(new XmlName("", "Value"), out valueNode) && ((IElementNode)node).CollectionItems.Count == 1) + valueNode = ((IElementNode)node).CollectionItems[0]; + + if (valueNode == null) + throw new XamlParseException("Missing Value for Setter", (IXmlLineInfo)node); //if it's an elementNode, there's probably no need to convert it if (valueNode is IElementNode) |