diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2016-04-18 18:25:20 +0200 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2016-04-18 17:25:20 +0100 |
commit | 4d279db34812891975aa0e8d73e3d5dd970a692c (patch) | |
tree | 7020cb7a12f20f36bd83dd65c902128b831dc139 /Xamarin.Forms.Core/ResourceDictionary.cs | |
parent | 7dcdfb60a9cf0a13fdbb07973f9049e64f91f311 (diff) | |
download | xamarin-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.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; |