diff options
Diffstat (limited to 'Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs')
-rw-r--r-- | Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs new file mode 100644 index 00000000..c14f9f94 --- /dev/null +++ b/Xamarin.Forms.Xaml/MarkupExtensions/TemplateBindingExtension.cs @@ -0,0 +1,34 @@ +using System; + +namespace Xamarin.Forms.Xaml +{ + [ContentProperty("Path")] + public sealed class TemplateBindingExtension : IMarkupExtension<BindingBase> + { + public TemplateBindingExtension() + { + Mode = BindingMode.Default; + Path = Binding.SelfPath; + } + + public string Path { get; set; } + + public BindingMode Mode { get; set; } + + public IValueConverter Converter { get; set; } + + public object ConverterParameter { get; set; } + + public string StringFormat { get; set; } + + BindingBase IMarkupExtension<BindingBase>.ProvideValue(IServiceProvider serviceProvider) + { + return new TemplateBinding(Path, Mode, Converter, ConverterParameter, StringFormat); + } + + object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider) + { + return (this as IMarkupExtension<BindingBase>).ProvideValue(serviceProvider); + } + } +}
\ No newline at end of file |