89c89bf587d1fbee81f59f512b42db33c04242a1
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / Xaml / MarkupExtensions / TemplateBindingExtension.cs
1 using System;
2 using System.ComponentModel;
3 using Tizen.NUI.Binding;
4
5 namespace Tizen.NUI.Xaml
6 {
7     /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
8     [EditorBrowsable(EditorBrowsableState.Never)]
9     [ContentProperty("Path")]
10     [AcceptEmptyServiceProvider]
11     public sealed class TemplateBindingExtension : IMarkupExtension<BindingBase>
12     {
13         internal TemplateBindingExtension()
14         {
15             Mode = BindingMode.Default;
16             Path = Tizen.NUI.Binding.Binding.SelfPath;
17         }
18
19         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
20         [EditorBrowsable(EditorBrowsableState.Never)]
21         public string Path { get; set; }
22
23         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
24         [EditorBrowsable(EditorBrowsableState.Never)]
25         public BindingMode Mode { get; set; }
26
27         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
28         [EditorBrowsable(EditorBrowsableState.Never)]
29         public IValueConverter Converter { get; set; }
30
31         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
32         [EditorBrowsable(EditorBrowsableState.Never)]
33         public object ConverterParameter { get; set; }
34
35         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
36         [EditorBrowsable(EditorBrowsableState.Never)]
37         public string StringFormat { get; set; }
38
39         BindingBase IMarkupExtension<BindingBase>.ProvideValue(IServiceProvider serviceProvider)
40         {
41             return new TemplateBinding(Path, Mode, Converter, ConverterParameter, StringFormat);
42         }
43
44         object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
45         {
46             return (this as IMarkupExtension<BindingBase>).ProvideValue(serviceProvider);
47         }
48     }
49 }