diff options
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/CompiledConverters/BindablePropertyConverter.cs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CompiledConverters/BindablePropertyConverter.cs b/Xamarin.Forms.Build.Tasks/CompiledConverters/BindablePropertyConverter.cs index c1d11487..c78e5184 100644 --- a/Xamarin.Forms.Build.Tasks/CompiledConverters/BindablePropertyConverter.cs +++ b/Xamarin.Forms.Build.Tasks/CompiledConverters/BindablePropertyConverter.cs @@ -30,7 +30,8 @@ namespace Xamarin.Forms.Core.XamlC var parts = value.Split('.'); if (parts.Length == 1) { var parent = node.Parent?.Parent as IElementNode; - if ((node.Parent as ElementNode)?.XmlType.NamespaceUri == "http://xamarin.com/schemas/2014/forms" && (node.Parent as ElementNode)?.XmlType.Name == "Setter") { + if ((node.Parent as ElementNode)?.XmlType.NamespaceUri == "http://xamarin.com/schemas/2014/forms" && + ((node.Parent as ElementNode)?.XmlType.Name == "Setter" || (node.Parent as ElementNode)?.XmlType.Name == "PropertyCondition")) { if (parent.XmlType.NamespaceUri == "http://xamarin.com/schemas/2014/forms" && (parent.XmlType.Name == "Trigger" || parent.XmlType.Name == "DataTrigger" || parent.XmlType.Name == "MultiTrigger" || parent.XmlType.Name == "Style")) { var ttnode = (parent as ElementNode).Properties [new XmlName("", "TargetType")]; @@ -48,6 +49,9 @@ namespace Xamarin.Forms.Core.XamlC } else throw new XamlParseException($"Cannot convert \"{value}\" into {typeof(BindableProperty)}", node); + if (typeName == null || propertyName == null) + throw new XamlParseException($"Cannot convert \"{value}\" into {typeof(BindableProperty)}", node); + var typeRef = GetTypeReference(typeName, module, node); if (typeRef == null) throw new XamlParseException($"Can't resolve {typeName}", node); |