[Xaml] Support import other xaml as the source of resource dictionary
authorFang Xiaohui <xiaohui.fang@samsung.com>
Mon, 11 Apr 2022 05:22:26 +0000 (13:22 +0800)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 12 Apr 2022 07:37:06 +0000 (16:37 +0900)
src/Tizen.NUI/src/public/XamlBinding/ResourceDictionary.cs

index 1051090..50fc3ce 100755 (executable)
@@ -25,6 +25,8 @@ using System.Globalization;
 using System.Linq;
 using System.Reflection;
 using System.Runtime.CompilerServices;
+
+using Tizen.NUI.Binding.Internals;
 using Tizen.NUI.Xaml;
 
 namespace Tizen.NUI.Binding
@@ -77,19 +79,25 @@ namespace Tizen.NUI.Binding
         }
 
         /// <summary>
-        /// Gets or sets the URI of the merged resource dictionary.
+        /// Gets or sets the resource dictionary.
         /// </summary>
-        /// This will be public opened in tizen_5.0 after ACR done. Before ACR, need to be hidden as inhouse API.
+        /// Internal using, will never open.
         [EditorBrowsable(EditorBrowsableState.Never)]
         [TypeConverter(typeof(RDSourceTypeConverter))]
-        public Uri Source
+        public ResourceDictionary Source
         {
-            get { return source; }
+            get
+            {
+                return this;
+            }
             set
             {
-                if (source == value)
-                    return;
-                throw new InvalidOperationException("Source can only be set from XAML."); //through the RDSourceTypeConverter
+                OnValuesChanged(value.ToArray());
+
+                foreach (var pair in value)
+                {
+                    Add(pair.Key, pair.Value);
+                }
             }
         }