diff options
Diffstat (limited to 'Xamarin.Forms.Xaml')
-rw-r--r-- | Xamarin.Forms.Xaml/CreateValuesVisitor.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Xamarin.Forms.Xaml/CreateValuesVisitor.cs b/Xamarin.Forms.Xaml/CreateValuesVisitor.cs index c2331bf1..817b62c8 100644 --- a/Xamarin.Forms.Xaml/CreateValuesVisitor.cs +++ b/Xamarin.Forms.Xaml/CreateValuesVisitor.cs @@ -107,7 +107,7 @@ namespace Xamarin.Forms.Xaml Values[node] = value; var markup = value as IMarkupExtension; - if (markup != null && (value is TypeExtension || value is StaticExtension)) + if (markup != null && (value is TypeExtension || value is StaticExtension || value is ArrayExtension)) { var serviceProvider = new XamlServiceProvider(node, Context); @@ -119,9 +119,16 @@ namespace Xamarin.Forms.Xaml value = markup.ProvideValue(serviceProvider); + INode xKey; + if (!node.Properties.TryGetValue(XmlName.xKey, out xKey)) + xKey = null; + node.Properties.Clear(); node.CollectionItems.Clear(); + if (xKey != null) + node.Properties.Add(XmlName.xKey, xKey); + Values[node] = value; } |