2 * Copyright(c) 2021 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 using System.ComponentModel;
20 using Tizen.NUI.Binding;
22 namespace Tizen.NUI.Xaml
24 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
25 [EditorBrowsable(EditorBrowsableState.Never)]
26 [ContentProperty("Path")]
27 [AcceptEmptyServiceProvider]
28 public sealed class TemplateBindingExtension : IMarkupExtension<BindingBase>
30 internal TemplateBindingExtension()
32 Mode = BindingMode.Default;
33 Path = Tizen.NUI.Binding.Binding.SelfPath;
36 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
37 [EditorBrowsable(EditorBrowsableState.Never)]
38 public string Path { get; set; }
40 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
41 [EditorBrowsable(EditorBrowsableState.Never)]
42 public BindingMode Mode { get; set; }
44 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
45 [EditorBrowsable(EditorBrowsableState.Never)]
46 public IValueConverter Converter { get; set; }
48 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
49 [EditorBrowsable(EditorBrowsableState.Never)]
50 public object ConverterParameter { get; set; }
52 /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
53 [EditorBrowsable(EditorBrowsableState.Never)]
54 public string StringFormat { get; set; }
56 BindingBase IMarkupExtension<BindingBase>.ProvideValue(IServiceProvider serviceProvider)
58 return new TemplateBinding(Path, Mode, Converter, ConverterParameter, StringFormat);
60 object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
62 return (this as IMarkupExtension<BindingBase>).ProvideValue(serviceProvider);