summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs')
-rw-r--r--Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs6
1 files changed, 3 insertions, 3 deletions
diff --git a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
index 5470a3c8..692ef8b5 100644
--- a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
+++ b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs
@@ -118,7 +118,7 @@ namespace Xamarin.Forms.Build.Tasks
if (parentVar.VariableType.ImplementsInterface(Module.Import(typeof (IEnumerable))))
{
var elementType = parentVar.VariableType;
- if (elementType.FullName != "Xamarin.Forms.ResourceDictionary")
+ if (elementType.FullName != "Xamarin.Forms.ResourceDictionary" && elementType.Resolve().BaseType.FullName != "Xamarin.Forms.ResourceDictionary")
{
var adderTuple = elementType.GetMethods(md => md.Name == "Add" && md.Parameters.Count == 1, Module).First();
var adderRef = Module.Import(adderTuple.Item1);
@@ -213,7 +213,7 @@ namespace Xamarin.Forms.Build.Tasks
return parentList.CollectionItems.Contains(node);
}
- static string GetContentProperty(TypeReference typeRef)
+ internal static string GetContentProperty(TypeReference typeRef)
{
var typeDef = typeRef.Resolve();
var attributes = typeDef.CustomAttributes;
@@ -461,7 +461,7 @@ namespace Xamarin.Forms.Build.Tasks
context.IL.Emit(OpCodes.Ldloc, parent);
context.IL.Append(vnode.PushConvertedValue(context,
propertyType,
- new ICustomAttributeProvider[] { propertyType.Resolve() },
+ new ICustomAttributeProvider[] { property, propertyType.Resolve() },
valueNode.PushServiceProvider(context), false, true));
context.IL.Emit(OpCodes.Callvirt, propertySetterRef);