diff options
Diffstat (limited to 'Xamarin.Forms.Core/ResourceDictionary.cs')
-rw-r--r-- | Xamarin.Forms.Core/ResourceDictionary.cs | 11 |
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; |