2 using Tizen.NUI.Binding.Internals;
3 using Tizen.NUI.Binding;
5 namespace Tizen.NUI.Xaml
7 [ContentProperty("Path")]
8 [AcceptEmptyServiceProvider]
9 internal sealed class BindingExtension : IMarkupExtension<BindingBase>
11 public string Path { get; set; } = Binding.Binding.SelfPath;
12 public BindingMode Mode { get; set; } = BindingMode.Default;
14 public IValueConverter Converter { get; set; }
16 public object ConverterParameter { get; set; }
18 public string StringFormat { get; set; }
20 public object Source { get; set; }
22 public string UpdateSourceEventName { get; set; }
24 public object TargetNullValue { get; set; }
26 public object FallbackValue { get; set; }
28 public TypedBindingBase TypedBinding { get; set; }
30 BindingBase IMarkupExtension<BindingBase>.ProvideValue(IServiceProvider serviceProvider)
32 if (TypedBinding == null)
33 return new Tizen.NUI.Binding.Binding(Path, Mode, Converter, ConverterParameter, StringFormat, Source)
35 UpdateSourceEventName = UpdateSourceEventName,
36 FallbackValue = FallbackValue,
37 TargetNullValue = TargetNullValue,
40 TypedBinding.Mode = Mode;
41 TypedBinding.Converter = Converter;
42 TypedBinding.ConverterParameter = ConverterParameter;
43 TypedBinding.StringFormat = StringFormat;
44 TypedBinding.Source = Source;
45 TypedBinding.UpdateSourceEventName = UpdateSourceEventName;
46 TypedBinding.FallbackValue = FallbackValue;
47 TypedBinding.TargetNullValue = TargetNullValue;
51 object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
53 return (this as IMarkupExtension<BindingBase>).ProvideValue(serviceProvider);