[NUI] Change GetDefaultWindow() to static func (#900)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / Xaml / MarkupExtensions / DynamicResourceExtension.cs
1 using System;
2 using Tizen.NUI.Binding;
3 using Tizen.NUI.Binding.Internals;
4
5 namespace Tizen.NUI.Xaml
6 {
7     [ContentProperty("Key")]
8     internal sealed class DynamicResourceExtension : IMarkupExtension<DynamicResource>
9     {
10         public string Key { get; set; }
11
12         public object ProvideValue(IServiceProvider serviceProvider)
13         {
14             return ((IMarkupExtension<DynamicResource>)this).ProvideValue(serviceProvider);
15         }
16
17         DynamicResource IMarkupExtension<DynamicResource>.ProvideValue(IServiceProvider serviceProvider)
18         {
19             if (Key == null)
20             {
21                 var lineInfoProvider = serviceProvider.GetService(typeof (IXmlLineInfoProvider)) as IXmlLineInfoProvider;
22                 var lineInfo = (lineInfoProvider != null) ? lineInfoProvider.XmlLineInfo : new XmlLineInfo();
23                 throw new XamlParseException("DynamicResource markup require a Key", lineInfo);
24             }
25             return new DynamicResource(Key);
26         }
27     }
28 }