summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core/ResourceDictionary.cs
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2016-04-18 18:25:20 +0200
committerRui Marinho <me@ruimarinho.net>2016-04-18 17:25:20 +0100
commit4d279db34812891975aa0e8d73e3d5dd970a692c (patch)
tree7020cb7a12f20f36bd83dd65c902128b831dc139 /Xamarin.Forms.Core/ResourceDictionary.cs
parent7dcdfb60a9cf0a13fdbb07973f9049e64f91f311 (diff)
downloadxamarin-forms-4d279db34812891975aa0e8d73e3d5dd970a692c.tar.gz
xamarin-forms-4d279db34812891975aa0e8d73e3d5dd970a692c.tar.bz2
xamarin-forms-4d279db34812891975aa0e8d73e3d5dd970a692c.zip
[C] Allow Multiple Shared RD. (#103)
Diffstat (limited to 'Xamarin.Forms.Core/ResourceDictionary.cs')
-rw-r--r--Xamarin.Forms.Core/ResourceDictionary.cs11
1 files changed, 9 insertions, 2 deletions
diff --git a/Xamarin.Forms.Core/ResourceDictionary.cs b/Xamarin.Forms.Core/ResourceDictionary.cs
index e5e08bc6..7460a909 100644
--- a/Xamarin.Forms.Core/ResourceDictionary.cs
+++ b/Xamarin.Forms.Core/ResourceDictionary.cs
@@ -26,10 +26,17 @@ namespace Xamarin.Forms
}
}
- static ResourceDictionary _instance;
+ static Dictionary<Type, ResourceDictionary> _instances;
static ResourceDictionary GetInstance(Type type)
{
- return _instance ?? (_instance = ((ResourceDictionary)Activator.CreateInstance (type)));
+ _instances = _instances ?? new Dictionary<Type, ResourceDictionary>();
+ ResourceDictionary rd;
+ if (!_instances.TryGetValue(type, out rd))
+ {
+ rd = ((ResourceDictionary)Activator.CreateInstance(type));
+ _instances [type] = rd;
+ }
+ return rd;
}
ResourceDictionary _mergedInstance;